問題描述
如果我在一個頁面上使用相同的菜單 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。