カスタマイザーから余分なメニューを削除する方法

Cocoonカスタマイズ集
この記事は約3分で読めます。
記事内に広告が含まれています。

はじめに

外観→カスタマイズからメニューを削除します。

この記事では、この方法について説明します。

完成イメージ

実装手順

以下のコードをfunctions.phpに追加します。

add_action('customize_register', function ($wp_customize) {
  $wp_customize->remove_section("title_tagline");       // サイト基本情報
  $wp_customize->remove_section("background_image");    // 背景画像
  $wp_customize->remove_section("static_front_page");   // ホームページ設定
  $wp_customize->remove_section("custom_css");          // 追加CSS
});

注意点

メニューとウィジェットを削除する方法として、以下のコードを紹介しているサイトがあります。

add_action('customize_register', function ($wp_customize) {
  $wp_customize->remove_panel('nav_menus');             // メニュー
  $wp_customize->remove_panel('widgets');               // ウィジェット
});

このコードでは以下の警告が表示されます。

Notice: 関数 WP_Customize_Manager::remove_panel が誤って呼び出されました。widgets を手動で削除すると PHP の警告を引き起こす可能性があります。代わりに customize_loaded_components フィルターを使用してください。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 4.5.0 で追加されました) in /virtual/exampley/public_html/wp-includes/functions.php on line 6121

このため、WordPress公式サイトで紹介されているcustomize_loaded_componentsを使用する方法では、削除できませんでした(2025年10月7日時点)。

そこで、CSSを用いてメニューやウィジェットを非表示にします。
他のメニューもcustomize_registerを使うのではなく、CSSで統一した方が管理しやすいと考えられます。

add_action('customize_controls_print_styles', function () {
  ?>
  <style>
  #accordion-panel-widgets,
  #accordion-panel-nav_menus {
    display: none !important;
  }
  </style>
  <?php
});

さいごに

今回紹介した方法を使えば、のカスタマイザーで不要なメニューやウィジェットパネルを簡単に非表示にできます。
PHPの警告やエラーを回避しつつ、CSSによる統一管理で将来的なメンテナンスも容易になります。
複雑なフックやパネル削除の処理に悩む必要がなく、管理画面をすっきり整理可能です

タイトルとURLをコピーしました