てくてくあるく

WordPress の テーマ とか プラグイン に ついて 勉強しています

購入したテーマの 使わないカスタム投稿タイプを 非表示にしてほしい

という相談があったので 子テーマを使って対応しました

サクッと 済ませるなら
購入したテーマ自体に 手を入れて
show_in_menu や show_in_admin_bar あたりを falseにすれば良いですが

今回は 子テーマを使って 非表示にする事にしました


管理メニューから非表示


管理メニューは グローバル変数に データが入っているので 対象のID を 調べて unset するだけです

ただ 今後のカスタマイズによって IDが 変わるかもしれないので post_type=hoge から IDを 探して unset しています

function remove_menus() {
  global $menu;
  foreach( $menu as $id => $value ) {
    if( isset( $value[2] ) && strpos( $value[2], 'post_type=hoge' ) !== false ) {
      unset( $menu[$id] );
    }
  }
}
add_action( 'admin_menu', 'remove_menus' );

管理バーから非表示


管理バーには 表示が残ったままなので こちらも非表示にしていきます

こちらは 対象の項目を右クリックして 要素の検証をすると liタグに id=”wp-admin-bar-new-hoge” のように 指定されているので

function remove_bar_menu( $wp_admin_bar ) {
  $wp_admin_bar->remove_menu( 'new-hoge' );
}
add_action( 'admin_bar_menu', 'remove_bar_menu', 80 );

のように 指定すると 項目が表示されなくなります

項目が 非表示にならない場合 最後の 80 の値を 大きくしてみてください

Related Article

プラグイン管理画面の設定リンクを追加する

詳細へ »

WordPress テーマ作りで 気をつけていること & 2022年 よく使った プラグイン

詳細へ »

関連記事 っぽいものを 付けてみました

詳細へ »