noeltock
  • 0
Учитель

Fallback_cb возится с контейнерами

  • 0

У меня есть следующий код для пользовательской области меню:

$wp_nav_header = array( 
    'container' => '',
    'menu_class' => 'sf-menu',
    'fallback_cb' => 'wp_page_menu',
    'theme_location' => 'primaryheader',
    'depth' => 0,);
wp_nav_menu( $wp_nav_header);

Он отлично работает, когда есть меню, и выводит:

<div id="nav-main">
<div class="sf-menu">
<ul><li...

Однако, когда он отступает, он выводит:

<div id="nav-main">
<ul id="menu-default" class="sf-menu"><li...

Излишне говорить, что это отбрасывает мой дизайн, поскольку добавляет эти классы (для которых у меня нет стилей) и удаляет Suckerfish, но моя навигация исчезает (несмотря на то, что она отображается в исходном коде).

Кто-нибудь сталкивался с этим раньше?

Спасибо!

Share
  1. Добавление каких классов? единственная разница, которую я вижу между двумя фрагментами кода, которые вы опубликовали, — это атрибут ID в неупорядоченном списке.

    • 0
  2. в основном вам не хватает контейнера div, поэтому, если вы измените свой запасной вариант на пользовательскую функцию, вы можете передать параметры в wp_page_menu, которые дадут вам немного контроля над ним, и добавить отсутствующий div:

    $wp_nav_header = array( 
        'container' => '',
        'menu_class' => 'sf-menu',
        'fallback_cb' => 'my_fallback_menu',
        'theme_location' => 'primaryheader',
        'depth' => 0,);
    wp_nav_menu( $wp_nav_header);
    
    
    function my_fallback_menu(){
        echo '<div class="sf-menu">';
        $args = array(
            'sort_column' => 'menu_order, post_title',
            'menu_class'  => '',
            'include'     => '',
            'exclude'     => '',
            'echo'        => true,
            'show_home'   => false,
            'link_before' => '',
            'link_after'  => '' );
        wp_page_menu($args);
        echo '</div>';
    }
    

    Надеюсь это поможет

    • 0

Оставить ответ

You must login to add an answer.