みなさん、こんばんは。
これまで何度かWPの固定ページのエディタを非表示にする機会があり、そのたびに何度も調べていただので
この機会にブログに備忘録として記述しておこうと思います。
で、最初にやったのが、存在するすべての固定ページのエディタの制御だったんですが
どちらかというと特定の固定ページに制御をかけることが多いのでどちらも一緒に紹介しておこうと思います。
すべての固定ページのエディタを非表示にする
以下の記述を丸々コピーしてfunction.phpに記載してください。
function post_output_css() {
$pt = get_post_type();
if ($pt == 'page') {
$hide_postdiv_css = '<style type="text/css">#postdiv, #postdivrich { display: none; }</style>';
echo $hide_postdiv_css;
}
}
add_action('admin_head', 'post_output_css');
[if ($pt == ‘page’)]の部分を投稿タイプの場合は[if ($pt == ‘post’)]に変えてあげればOKです。
ちなみにhead部分にスタイルシートを追加して非表示にするという方法で、エディタを非表示にしています。
特定の固定ページのエディタを非表示にする
こちらも以下の記述を丸々コピーしてfunction.phpに記載してください。
function disable_visual_editor_in_page(){
global $typenow;
$post_id = $_GET['post'];
if( $typenow == 'page' ){
if ( in_array( $post_id, array('固定ページのID', '固定ページのID'), true ) ){
$hide_postdiv_css = '<style type="text/css">#postdiv, #postdivrich { display: none; }</style>';
echo $hide_postdiv_css;
}
}
}
add_action('load-post.php', 'disable_visual_editor_in_page');
add_action('load-post-new.php', 'disable_visual_editor_in_page');
通常の以下の関数だとすべてのエディタが削除されてしまって都合が悪いので
<?php remove_post_type_support( $post_type, $supports ) ?>
上記のように固定ページのIDを指定して対策をとりました。
みなさんもぜひ使い分けつつやってみてください~!