wordpressの固定ページだけビジュアルエディタを無効にする方法

個人的にはあまりwordpressのビジュアルエディタは使いませんが、クライアントワークの場合、使う方の事を考えてビジュアルエディタを有効にする事があります。

フォーマットが決まっているニュース記事などはビジュアルエディタでも問題ありませんが、固定ページの場合あまり更新しないので、HTMLをゴリゴリ書いているケースが多いと思います。このような場合、一度ビジュアルエディタに切り替えてしまうとHTMLが自動整形されてしまい、見た目が崩れる可能性があります。こうなるとバックアップを取ってないと戻すのが非常に面倒です。

クライアントさんが知らずのうちに固定ページでビジュアルエディタに切り替えてしまう事も想定されるので、予め固定ページだけビジュアルエディタを無効化しておくと安全です。

固定ページのみビジュアルエディタを無効にするコード

以下のコードをfunctions.phpに追記します。

function disable_visual_editor() {
  global $typenow;
  if( $typenow == 'page' ){
    add_filter('user_can_richedit', 'disable_visual_editor_filter');
  }
}

function disable_visual_editor_filter(){
  return false;
}
add_action('load-post.php', 'disable_visual_editor');
add_action('load-post-new.php', 'disable_visual_editor');

コード適用前

コード適用後

ビジュアルエディタを切り替えるタブが無くなり、テキストエディタのみになりました。これでビジュアルエディタによる崩れの心配もありませんね。

固定ページ以外のカスタム投稿タイプなどもビジュアルエディタを無効にしたい場合

function disable_visual_editor() {
  global $typenow;
  if( $typenow == 'page' ){ // page を投稿タイプ名に変更する
    add_filter('user_can_richedit', 'disable_visual_editor_filter');
  }
}

上記コードの「page」の部分を投稿タイプ名に変更すればOKです。

全てのページでビジュアルエディタを無効にしたい場合

function disable_visual_editor() {
  global $typenow;
  add_filter('user_can_richedit', 'disable_visual_editor_filter');
}

全てビジュアルエディタを無効にしたい場合、if文を削除すれば全体でビジュアルエディタが無効になります。

ただ、functions.phpにコードを記述しなくても、wordpress管理画面の「ユーザー > あなたのプロフィール」で表示される、プロフィール画面から「ビジュアルリッチエディターを使用しない」にチェック付ければ無効になります。