前回・前々回と、この「投稿画面から不要な表示を非表示にする」という内容を書きましたが、CSSで消そうとしても消えなかったので、今回はPHPで非表示を試してみます。
テーマによっては投稿画面に様々な機能が追加されています。
ただ、運用状況によっては「カテゴリーだけあればいい」「アイキャッチ画像のみ設定できるようにしたい」「アイキャッチ画像を設定されたら困る」など、色々とあるかと思いますので、非表示にしてみます。
remove_post_type_supportで削除する
remove_post_type_supportを使うことで不要な部分を削除することができます。
remove_post_type_support( $post_type, $supports )
$post_type
(文字列) (必須) 投稿タイプ。(最大 20 文字)
初期値: なし
今回は投稿タイプは「投稿」にしたいので、すべてpostとします。
削除する機能を選択する
下記が削除できる一覧です。消したい機能を$supports部分の引数に選択します。
$supports
(文字列) (必須) 削除する機能。
初期値: なし
‘title’ (タイトル)
‘editor’ (内容の編集)
‘author’ (作成者)
‘thumbnail’ (アイキャッチ画像)(現在のテーマが 投稿サムネイル をサポートしていること)
‘excerpt’ (抜粋)
‘trackbacks’ (トラックバック送信)
‘custom-fields’ (カスタムフィールド)
‘comments’ (コメントの他、編集画面にコメント数のバルーンを表示する)
‘revisions’ (リビジョンを保存する)
‘page-attributes’ (メニューの順序)(投稿タイプの hierarchical が true であること)
‘post-formats’ (投稿のフォーマットを削除。投稿フォーマットを参照)
例:remove_post_type_support( ‘post’, ‘comments’ ); // コメント
functions.phpに追記
子テーマのfunctions.phpに追記します。アクションフックでinitを指定して初期化のタイミングで消してみます。
function remove_post_type() {
remove_post_type_support( 'post', 'comments' );
remove_post_type_support( 'post', 'post-formats' );
remove_post_type_support( 'post', 'thumbnail' );
remove_post_type_support( 'post', 'excerpt' );
}
add_action( 'init', 'remove_post_type' );
アイキャッチ画像・抜粋の部分が消えました!!
コメント・投稿フォーマットはもともと表示されていなかったので何も変わりませんが、もし表示されていた場合は消えることになります。
まとめ
カテゴリー・タグなどを削除する場合は、remove_post_type_supportの中に無さそうだったので、別の方法が必要になりそうです。
ご参考ください😃