この「投稿管理から機能を非表示にする」が段々とシリーズものの記事になってきた気がしますが、続きです。
前回は「remove_post_type_support」で標準の機能の一部を非表示にしましたが、今回は「remove_post_meta_boxes」を使ってカテゴリーとタグ部分を非表示にしてみます。
remove_post_type_supportにカテゴリーとタグが…ない?
remove_post_type_support( $post_type, $supports )
前回ご紹介した「remove_post_type_support」ですが、どうやらカテゴリーとタグが無さそう・・・です。
$post_type
(文字列) (必須) 投稿タイプ。(最大 20 文字)
初期値: なし
$supports
(文字列) (必須) 削除する機能。
初期値: なし
‘title’ (タイトル)
‘editor’ (内容の編集)
‘author’ (作成者)
‘thumbnail’ (アイキャッチ画像)(現在のテーマが 投稿サムネイル をサポートしていること)
‘excerpt’ (抜粋)
‘trackbacks’ (トラックバック送信)
‘custom-fields’ (カスタムフィールド)
‘comments’ (コメントの他、編集画面にコメント数のバルーンを表示する)
‘revisions’ (リビジョンを保存する)
‘page-attributes’ (メニューの順序)(投稿タイプの hierarchical が true であること)
‘post-formats’ (投稿のフォーマットを削除。投稿フォーマットを参照)
「remove_post_type_support」にカテゴリーとタグがないようなので、別の方法が必要になってきそうです。
unregister_taxonomy_for_object_type
「unregister_taxonomy_for_object_type」という関数がありました!こちらを使うと、投稿画面のカテゴリーとタグを非表示にすることが可能です。
使い方
<?php unregister_taxonomy_for_object_type( $taxonomy, $object_type ); ?>
パラメータ
$taxonomy
(文字列) (必須) タクソノミーの名前。
初期値: なし
$object_type
(文字列) (必須) タクソノミーを削除するオブジェクトタイプの名前。
初期値: なし
カテゴリーとタグ表示状態
下記のように「unregister_taxonomy_for_object_type」でカテゴリーとタグを指定します。
add_action( 'init', 'remove_post_supports' );
function remove_post_supports() {
unregister_taxonomy_for_object_type( 'category', 'post' ); // カテゴリ
unregister_taxonomy_for_object_type( 'post_tag', 'post' ); // タグ
}
カテゴリーとタグ非表示状態
非表示になりました!
まとめ
initで呼び出してあげてカテゴリーとタグを指定すると、投稿の際に非表示になります。例えば投稿者にカテゴリーやタグを操作してほしくない・・・といった場合などに有効です。
なおくれぐれもfunctions.php追加の操作には気をつけましょう。一歩間違えると、サイト全体がエラーで開かない・・・といった事態になる可能性もあります。
「;」を忘れただけで、サイトが・・・。
ご参考ください。