web-dev-qa-db-ja.com

Navメニューを子テーマから登録解除する

Starkers Theme を使用して、child-themeを作成するのが好きです。

だから、私はこのプライマリメニューを削除したいのですが

Starkers(functions.php)

function starkers_setup() {
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
'primary' => __( 'Primary Navigation', 'starkers' ),
) );


}
endif;

私の子供テーマのfunctions.phpはこんな感じです:

unregister_nav_menu( array(
'primary' => __( 'Primary Navigation', 'starkers' ),
));

// my new nav
register_nav_menus(array(
'primary_navigation' => __('Main', 'starkers'),
'utility_navigation' => __('Meta', 'starkers')
));

しかし、それは私には効果がありません。

どうしましたか?
ありがとう

6
ogni

Starkersテーマ設定は、after_setup_themeの優先順位で10にフックされています。ですから、基本的に、登録解除関数を別の関数(child themes functions.phpファイル)の中にラップし、それを親テーマ設定関数よりも 後で 追加する必要があります。子供。

function wpse_remove_parent_theme_locations()
{
    // @link http://codex.wordpress.org/Function_Reference/unregister_nav_menu
    unregister_nav_menu( 'primary' );
}
add_action( 'after_setup_theme', 'wpse_remove_parent_theme_locations', 20 );
8
kaiser

これは間違いなくあなたのために働くはずです、私はちょうどチェックアウトしました

add_action( 'after_setup_theme', 'remove_default_menu', 11 );
function remove_default_menu(){
unregister_nav_menu('primary');
}
1
IFightCode