以前に、このブログでも管理画面の「表示オプション」や「ヘルプ」リンクを非表示にする方法について紹介させていただきましたが、
今回は、管理画面の「表示オプション」リンクは表示させるものの、表示オプション内で不要なものを最初から非表示にしてしまう方法について紹介させていただきます。
functions.php で不要な表示オプションを非表示にする。
ご利用のテーマのfunctions.php に以下のコードを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function my_remove_meta_boxes() { remove_meta_box('authordiv', 'post', 'normal'); // オーサー remove_meta_box('categorydiv', 'post', 'normal'); // カテゴリー remove_meta_box('commentstatusdiv', 'post', 'normal'); // ディスカッション remove_meta_box('commentsdiv', 'post', 'normal'); // コメント remove_meta_box('formatdiv', 'post', 'normal'); // フォーマット remove_meta_box('pageparentdiv', 'post', 'normal'); // ページ属性 remove_meta_box('postcustom', 'post', 'normal'); // カスタムフィールド remove_meta_box('postexcerpt', 'post', 'normal'); // 抜粋 remove_meta_box('postimagediv', 'post', 'normal'); // アイキャッチ remove_meta_box('revisionsdiv', 'post', 'normal'); // リビジョン remove_meta_box('slugdiv', 'post', 'normal'); // スラッグ remove_meta_box('tagsdiv-post_tag', 'post', 'normal'); // タグ remove_meta_box('trackbacksdiv', 'post', 'normal'); // トラックバック } add_action('admin_menu', 'my_remove_meta_boxes'); |
remove_meta_boxの第2引数は「post」「page」「カスタム投稿名」などが入りますので、上記例であれば「post(通常の投稿)」の編集画面にて有効になります。
また、表示オプション内に残したい項目は、//remove_meta_box(‘authordiv’, ‘post’, ‘normal’); のようにコメントアウトしておくか、記述(行)自体を削除します。
参考ページ
Function Reference/remove meta box
複数の投稿タイプ毎に表示オプションを制御する
カスタム投稿タイプが複数あって、しかも各投稿タイプごとに表示オプション内の項目を出したり消したり…するような場合は、ちょっとコードが煩雑になってしまいますが、functions.php で以下のように複数パターン書いてあげると出来なくもないかなと。。
1 2 3 4 5 6 |
function my_remove_meta_boxes() { remove_meta_box('authordiv', 'page', 'normal'); //remove_meta_box('authordiv', 'post', 'normal'); remove_meta_box('authordiv', 'カスタム投稿タイプ名', 'normal'); } add_action('admin_menu', 'my_remove_meta_boxes'); |
上記例の場合、固定ページとカスタム投稿タイプの編集画面ではオーサーの項目は最初から「非表示」に、通常投稿の場合はオーサーの項目は「表示」するという処理です。
CSS で不要な表示オプションを非表示にする。
プラグインを有効化すると勝手に追加されるような表示オプションも、上記の方法(remove_meta_box)で非表示にできるようですが、非表示が難しい(できない)プラグインの場合、functions.php を編集して管理画面にCSSの記述を足せるようにした上で、<style></style> 内で対象の
label
をdisplay:none!important
に指定してあげることで、不要な項目を非表示にすることもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function add_admin_style() { if(get_post_type() === 'post'){ echo '<style> //CSSで個々の表示オプションを非表示にすることも可能 label[for="authordiv-hide"] {display:none!important} label[for="postcustom-hide"] {display:none!important} label[for="revisionsdiv-hide"] {display:none!important} //プラグイン毎にlabelを指定すれば非表示になります label[for="*********-hide"] {display:none!important} </style>'; } } add_action("admin_head", "add_admin_style"); |
コメント