親テーマのメニューを非表示にしてみた
この記事は 2018年 12月 13日 に書かれた記事です。
購入したテーマの 使わないカスタム投稿タイプを 非表示にしてほしい
という相談があったので 子テーマを使って対応しました
サクッと 済ませるなら
購入したテーマ自体に 手を入れて
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 の値を 大きくしてみてください