web-dev-qa-db-ja.com

WordPressテーマカスタマイザからメニューセクションを削除する方法

WordPressカスタマイザからメニューを削除しようとしました(画像を参照) enter image description here 

Functions.phpファイルで次のコードを試してみたところ、メニュー以外のすべてのセクションが削除されました

  //Theme customizer

function mytheme_customize_register( $wp_customize ) {
   //All our sections, settings, and controls will be added here

   $wp_customize->remove_section( 'title_tagline');
   $wp_customize->remove_section( 'colors');
   $wp_customize->remove_section( 'header_image');
   $wp_customize->remove_section( 'background_image');
   $wp_customize->remove_section( 'menus');
   $wp_customize->remove_section( 'static_front_page');
   $wp_customize->remove_section( 'custom_css');

}

add_action( 'customize_register', 'mytheme_customize_register' );

私も試した

$wp_customize->remove_panel( 'menus');

しかし、うまくいきませんでした私はここに何かが足りないのです。

1
user5323957

メニュー の代わりに nav_menus remove_panel()で試してください。

function mytheme_customize_register( $wp_customize ) {
  //All our sections, settings, and controls will be added here

  $wp_customize->remove_section( 'title_tagline');
  $wp_customize->remove_section( 'colors');
  $wp_customize->remove_section( 'header_image');
  $wp_customize->remove_section( 'background_image');
  $wp_customize->remove_panel( 'nav_menus');
  $wp_customize->remove_section( 'static_front_page');
  $wp_customize->remove_section( 'custom_css');

}
add_action( 'customize_register', 'mytheme_customize_register',50 );

これがお役に立てば幸いです。

ありがとうございました!

カスタマイザでナビゲーションメニューを無効にする正しい方法は、 hookのリファレンスページ に記載されているようにcustomize_loaded_componentsフィルタを使用することです。

/**
 * 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' );

重要: テーマのsetup_themeがロードされる直前に起動するfunctions.phpアクションの前に追加する必要があるため、このフィルターはプラグインに追加する必要があります。

詳しくは、以下のTracチケットを参照してください。

  • #33552 :カスタマイザ機能を無効にするプラグインを促進する
  • #37003 :テーマのmenusサポートを削除してもカスタマイザのメニューセクションが削除されない

関連するメモとして、自分だけの項目を追加できるようにカスタマイザを空白の状態にリセットするコードについては、 カスタマイザを空白の状態にリセットする を参照してください。

5
Weston Ruter