[WordPress]カスタマイザーから”メニュー”パネルを削除する

  • 更新日:
  • 公開日:

カスタマイザーから不要な項目を削除したい。

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)では動きませんでした。他の環境ではそのまま使えるコードなのかもしれません。

書いた人

Symbol Mark

Ryoichi(しつ)

除菌ティッシュを買い込んで使いきれずによく乾かす人。

療養目的で退職し、どうやって生きていくか模索中。最近は勉強目的でLaravelやVue.js弄ったり、趣味で音で遊んでます。

※2019年10月16日現在ブログリニューアル中です。崩れなどが発生していたらすみません。

うぇぶ: @s_ryone