投稿画面から不要な機能を削除する
投稿画面から不要な機能を削除するには、functions.phpに下記のように記載します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
/** * 投稿画面から不要な機能を削除します。 */ function remove_post_supports() { 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_post_supports' ); /** * 投稿画面から不要な枠(メタボックス)を無効にします。 */ function remove_post_meta_boxes() { remove_meta_box( 'slugdiv', 'post', 'normal' ); // スラッグ remove_meta_box( 'submitdiv', 'post', 'side' ); // 公開 } add_action( 'admin_menu', 'remove_post_meta_boxes' ); |
結果
(投稿画面。すべてなくなっているのがわかると思います)
(表示オプション。こちらもなくなっています)
さすがにすべて削除してしまうとなにもできませんので、必要なものは行の先頭に「//
」としてください。
このカスタマイズが必要なケース
通常は投稿画面の右上にある「表示オプション」からの表示切替で事が済むことが多いです。「ではなぜ削除するの?」という話になってくるのですが、よくあるケースとしては下記があります。
- 「管理者以外の権限の低いユーザーはいろいろ触れないようにしたい」
(「current_user_can()
」との組み合わせで権限によって機能を制限する) - 「PCに詳しくない人にも編集してもらいたいので画面上に表示するものを制限して迷わせないようにしたい」
- 「カスタムフィールドで入力項目を定義しており、タイトルや本文欄が不要」
(タイトルや本文欄は「表示オプション」では非表示にできない)
「current_user_can()
」との組み合わせの例
「current_user_can()
」は、「現在のログインユーザーに権限があるか?/ログインユーザーが権限グループ(管理者、編集者、寄稿者など)に属するか?」を確認するものです。下記では寄稿者のみタイトルと本文欄を無効にします。寄稿者には、カスタムフィールドで用意した項目のみ入力してもらうようなケースで便利です。
1 2 3 4 5 6 7 8 9 10 |
/** * 投稿の不要な機能を無効にします。(寄稿者) */ function remove_post_supports_for_contributor() { if ( current_user_can( 'contributor' ) ) { remove_post_type_support( 'post', 'title' ); // タイトル remove_post_type_support( 'post', 'editor' ); // 本文欄 } } add_action( 'init', 'remove_post_supports_for_contributor' ); |
その他
- 「
remove_meta_box()
」で枠を削除できるものもありますが、「remove_post_type_support()
」「unregister_taxonomy_for_object_type()
」で削除しておくと、クイック編集内での枠や管理メニュー項目(「投稿」>「カテゴリー」など)も削除できます。 - 固定ページで同じことをしたい場合、「
'post'
」となっている部分を「'page'
」にするとよいです。