IT女子のお気に入りフォルダ

管理人の備忘録と実践を兼ねた(出来るだけ)役に立つ情報を配信するブログです。

WordPressの固定ページ編集時のみビジュアルエディタを使用できないようにする

固定ページではdivやpタグ、PHPコードなどを使って記述することが多いです。だから、必然的にビジュアルエディタは使いません。だけど、お客さまが更新されるときはビジュアルエディタを使用されることが多いです。そうなると、固定ページもビジュアルエディタ画面で開かれしまい自動整形がなされ、レイアウトが崩れてしまう・・・なんて悲惨な事態が発生してしまいます。

改行の問題だけなら、PS Disable Auto Formattingというプラグインを使用すると、そこそこ解決できます。
が、ネックになってくるのはビジュアルとテキストの切り換えで置き換わってしまう山括弧(< や > )。
ショートコード化して対応することもできますが、なんか力技過ぎてねぇって感じがします。

というわけで、今回は固定ページの編集のときだけ、ビジュアルエディタを強制的にオフにする方法です。

下記をfunctions.phpに記述します。

//固定ページの編集時のみビジュアルエディタを使用できないようにする
function disable_visual_editor_in_page() {
    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_in_page');
add_action('load-post-new.php', 'disable_visual_editor_in_page');

$typenowの判定を変えれば、page以外にも対応可能です。

特定のカスタム投稿タイプでビジュアルエディタをオフにする

//カスタム投稿タイプでビジュアルエディタを利用できないようにする
function disable_visual_editor_in_page(){
    global $typenow;
    if( $typenow == 'ポストタイプ' ){
      add_filter('user_can_richedit', 'disable_visual_editor_filter');
    }
}
function disable_visual_editor_filter(){
    return false;
}
add_action( 'load-post.php', 'disable_visual_editor_in_page' );
add_action( 'load-post-new.php', 'disable_visual_editor_in_page' );

全ての投稿でビジュアルエディタをオフにする

//全ての投稿ページでビジュアルエディタを利用できないようにする
function disable_visual_editor_in_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_in_page' );
add_action( 'load-post-new.php', 'disable_visual_editor_in_page' );

全ての投稿でオフにするなら、ユーザーの設定で「ビジュアルリッチエディターを使用しない」にチェックを入れる方法もありますが、かつて、納品後にクライアント様がご自分でユーザーを新しく作り、ビジュアルリッチエディターを使ってしまうという事故があったので、私はfunction.phpに記述するようにしています。