Как избежать конфликта wp_nav_menu () ID?
Как избежать конфликтов ID, если я использую одно и то же меню TWICE на одной странице.
ПЕРВЫЙ
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' ) );
Идентификационные конфликты похожи на «Duplicate ID menu-item-2456» ... Любые решения?
1 ответ
Решение не вызывать один и тот же 'theme_location'
более одного раза. Местоположение темы предназначено для представления явного расположения в шаблоне .
Просто зарегистрируйте отдельный 'theme_location'
для каждого отдельного места в шаблоне, для которого вы хотите отобразить навигационное меню.
Считайте ваши выбранные имена 'theme_location'
именами semantic , представляющими расположение шаблона меню. Вы можете использовать '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' );
Затем для назначить пользовательские меню для каждого тематического местоположения.