カスタマイザーから不要な項目を削除したい。
Theme Customization APIのremove_panel
を使うと警告が出てしまいます。かといって、調べて出てきた公式ドキュメントのコードが効かない。
結果、ものすごく単純なコードで解決&調べても出てこなかったので軽くメモです。
カスタマイザーから”メニュー”パネルを削除する
WordPressのカスタマイザーのパネルやセクションは子となるコンポーネントが無ければ自動的にCSSで非表示になります。これを利用し、メニューパネルから「メニューを追加する」コンポーネント(セクション)を削除することでパネルを非表示にしてやりましょう。
以下のコードをfuncitons.phpに貼り付けます。
<?php
function my_custom_customizer( $wp_customize ) {
$wp_customize->remove_section( 'add_menu' );
}
add_action( 'customize_register', 'my_custom_customizer', 20 );
これで間接的にメニューパネルを削除できました。
参考、にはなりませんでしたが、一応公式ドキュメントにあったメニューパネルの削除コードが以下です:
<?php
/**
* Removes the core 'Menus' panel from the Customizer.
*
* @param array $components Core Customizer components list.
* @return array (Maybe) modified components list.
*/
function wpdocs_remove_nav_menus_panel( $components ) {
$i = array_search( 'nav_menus', $components );
if ( false !== $i ) {
unset( $components[ $i ] );
}
return $components;
}
add_filter( 'customize_loaded_components', 'wpdocs_remove_nav_menus_panel' );
customize_loaded_components
フックに引っ掛けて、コンポーネントオブジェクトからメニューパネルを削除する内容です。が、私のWordPress環境(バージョン4.9.5)では動きませんでした。他の環境ではそのまま使えるコードなのかもしれません。