WordPressの投稿や固定ページの編集画面には、「抜粋」や「カスタムフィールド」など、デフォルトで様々なウィジェットが用意されています。これらのウィジェットは使わない人にとっては邪魔なだけです。
表示オプションでチェックを外して非表示にすれば良いのですが、クライアントに納品する場合など、functions.phpで制御してしまった方が良いケースもあると思います。
そんな時のために、functions.phpを使って、不要なウィジェットを非表示にする方法を紹介したいと思います。
投稿や固定ページの編集画面から不要な機能を削除にする方法
以下のようにfunctions.phpに記述することで、編集画面からウィジェットを非表示にすることができます。
// 投稿
function remove_postedit_metabox() {
remove_meta_box( 'postexcerpt','post','normal' ); // 抜粋
remove_meta_box( 'trackbacksdiv','post','normal' ); // トラックバック送信
remove_meta_box( 'postcustom','post','normal' ); // カスタムフィールド
remove_meta_box( 'commentstatusdiv','post','normal' ); // ディスカッション
remove_meta_box( 'commentsdiv','post','normal' ); // コメント
remove_meta_box( 'slugdiv','post','normal' ); // スラッグ
remove_meta_box( 'authordiv','post','normal' ); // 作成者
remove_meta_box( 'revisionsdiv','post','normal' ); // リビジョン
remove_meta_box( 'formatdiv','post','normal' ); // フォーマット
remove_meta_box( 'categorydiv','post','normal' ); // カテゴリー
remove_meta_box( 'tagsdiv-post_tag','post','normal' ); // タグ
}
add_action('admin_menu','remove_postedit_metabox');
// 固定ページ
function remove_pageedit_metabox() {
remove_meta_box( 'postcustom','page','normal' ); // カスタムフィールド
remove_meta_box( 'commentstatusdiv','page','normal' ); // ディスカッション
remove_meta_box( 'commentsdiv','page','normal' ); // コメント
remove_meta_box( 'slugdiv','page','normal' ); // スラッグ
remove_meta_box( 'authordiv','page','normal' ); // 作成者
remove_meta_box( 'revisionsdiv','page','normal' ); // リビジョン
}
add_action('admin_menu','remove_pageedit_metabox');
無効にしたい項目だけを記述してください。
不要な機能を無効化する別の方法
上述したコードでは、remove_meta_boxを使って機能を無効化していますが、以下のようにremove_post_type_supportとunregister_taxonomy_for_object_typeを使って無効化することもできます。
function remove_postedit_support() {
remove_post_type_support( 'post', 'title' ); // タイトル
remove_post_type_support( 'post', 'editor' ); // 本文欄
remove_post_type_support( 'post', 'author' ); // 作成者
remove_post_type_support( 'post', 'thumbnail' ); // アイキャッチ
remove_post_type_support( 'post', 'excerpt' ); // 抜粋
remove_post_type_support( 'post', 'trackbacks' ); // トラックバック
remove_post_type_support( 'post', 'custom-fields' ); // カスタムフィールド
remove_post_type_support( 'post', 'comments' ); // コメント
remove_post_type_support( 'post', 'revisions' ); // リビジョン
remove_post_type_support( 'post', 'page-attributes' ); // ページ属性
remove_post_type_support( 'post', 'post-formats' ); // 投稿フォーマット
unregister_taxonomy_for_object_type( 'category', 'post' ); // カテゴリ
unregister_taxonomy_for_object_type( 'post_tag', 'post' ); // タグ
}
add_action( 'init', 'remove_postedit_support' );
固定ページの場合は、’post’を’page’にして無効化したい機能を指定します。また、カスタム投稿の場合も、’post’のところでカスタム投稿名を指定すれば、機能を無効化できます。
あとがき
使わないウィジェットが表示されていると、慣れていない人は迷ってしまいますよね。不要なウィジェットを非表示にすることで、スッキリして更新もしやすくなると思います。
ちなみに、無効化したウィジェットは、表示オプションや管理メニューからも消えます。