问题描述
如果我在一个页面上使用相同的菜单 TWICE,我如何避免 ID 冲突。
第一
wp_nav_menu( array( 'sort_column' => 'menu_order',
'theme_location'=>'menu', 'menu_class'=>'menu', 'menu_id'=>'menu' ) );
第二:
wp_nav_menu( array( 'sort_column' => 'menu_order',
'theme_location'=>'menu', 'menu_class'=>'menu2', 'menu_id'=>'menu2' ) );
ID 冲突就像 「重复的 ID menu-item-2456」… 任何解决方案?
最佳解决方案
解决方案不是多次调用相同的'theme_location'
。主题位置旨在表示模板中的显式位置。
只需在模板中为要显示导航菜单的每个单独位置注册一个单独的'theme_location'
。
考虑您选择的'theme_location'
名称是语义名称,表示菜单的模板位置。您可以使用'primary'
和'secondary'
,或'header'
和'footer'
等。
<?php
function wpse55380_setup_theme() {
// Register nav menu locations
register_nav_menus( array(
'header' => 'Header Menu',
'footer' => 'Footer Menu'
) );
}
add_action( 'after_setup_theme', 'wpse55380_setup_theme' );
… 要么:
<?php
function wpse55380_setup_theme() {
// Register nav menu locations
register_nav_menus( array(
'primary' => 'Primary Header Menu',
'secondary' => 'Secondary Header Menu'
) );
}
add_action( 'after_setup_theme', 'wpse55380_setup_theme' );
然后,最终用户可以为每个主题位置分配自定义菜单。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。