固定ページにおいて、複雑なHTMLタグを利用して管理画面内から更新したページがあるとします。
その場合、固定ページ内の「ビジュアル」「テキスト」というエディタの切り替えをするとpタグやspanタグが削除されたり、予期せぬ改行が入りpタグが追加されたりします。
これはWordPressのテンプレートタグであるwpautopによる挙動です。
これは便利な関数なのですが、予期せぬ場合は非常にやっかいな関数となり、間違えて切り替えボタンを押してしまった場合やクライアント側がビジュアルエディタでの更新を行っており崩れが起きることがままあります。
その際に「固定ページ全体ではなく、特定の固定ページだけ無効にしたい!」という要望を叶えるコードをご紹介します。
サンプルコード
///ページIDが1の固定ページみビジュアルエディタを無効 function disable_visual_editor_in_page(){ global $typenow; $url = $_SERVER['REQUEST_URI']; if( $typenow == 'page' && strstr($url, 'post=1')){ 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' );
解説
どのIDを該当させるかは、下記の”post=1″となっている数字の箇所を任意のIDに変更させてください。
if( $typenow == 'page' && strstr($url, 'post=1'))
IDの確認方法
IDを確認するには、管理画面で該当のページを開いた状態でURLのpost=◯◯の部分となります。
新規追加の場合、まだIDが確定していないため一旦保存してからIDを確定させます。
wpautopは非常に便利なんですが、クライアントワークでは無い方が良かったりと思うことも・・・
難しいところです。