Как избежать конфликта 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» ... Любые решения?

7 голосов | спросил Paul 15 J0000006Europe/Moscow 2012, 22:08:21

1 ответ


2

Решение не вызывать один и тот же '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' ); 

Затем для назначить пользовательские меню для каждого тематического местоположения.

ответил Chip Bennett 15 J0000006Europe/Moscow 2012, 22:32:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132