Custom nav menu not showing

时间:2012-06-16 作者:ilyo

我想制作一个自定义菜单,它将是一个选择框,

我注册了自定义菜单:

add_action( \'init\', \'register_my_menu\' );

function register_my_menu() {
    register_nav_menu( \'primary\', \'Primary Menu\' );
}
我使用以下方法向标题添加了自定义菜单爬虫:How to use wp_nav_menu to create a select menu dropdown?

    <nav class="page-name">
        <?php
            class Walker_Nav_Menu_Dropdown extends Walker_Nav_Menu{
                function start_lvl(&$output, $depth){
                    $indent = str_repeat("\\t", $depth); // don\'t output children opening tag (`<ul>`)
                }

                function end_lvl(&$output, $depth){
                    $indent = str_repeat("\\t", $depth); // don\'t output children closing tag
                }

                function start_el(&$output, $item, $depth, $args){ // add spacing to the title based on the depth
                    $item->title = str_repeat("&nbsp;", $depth * 2).$item->title;

                    parent::start_el(&$output, $item, $depth, $args);

                    // no point redefining this method too, we just replace the li tag...
                    $output = str_replace(\'<li\', \'<option\', $output);
                }

                function end_el(&$output, $item, $depth){
                    $output .= "</option>\\n"; // replace closing </li> with the option tag
                }
            }

            wp_nav_menu(array(
                \'theme_location\' => \'primary\', // your theme location here
                \'walker\'         => new Walker_Nav_Menu_Dropdown(),
                \'items_wrap\'     => \'<select>%3$s</select>\',
            ));
        ?>
    </nav>
并在WP Admin中创建了自定义菜单

enter image description here

但菜单仍然没有显示。我错过了什么?

Update<很明显,爬虫函数确实会产生输出,但当我使用register_nav_menu( \'primary\', \'Primary Menu\' ); 我有一份工作菜单。

<nav class="page-name">
    <div class="menu">
        <ul>
            <option id="menu-item-54" class="menu-item-54"><a></a></option>
            <option id="menu-item-24" class="menu-item-24"><a></a></option>
            <option id="menu-item-30" class="menu-item-30"><a></a></option>
            <option id="menu-item-18" class="menu-item-18"><a></a></option>
            <option id="menu-item-22" class="menu-item-22"><a></a></option>
            <option id="menu-item-26" class="menu-item-26"><a></a></option>
            <option id="menu-item-13" class="menu-item-13"><a></a></option>
            <option id="menu-item-28" class="menu-item-28"><a></a></option>
            <option id="menu-item-15" class="menu-item-15"><a></a></option>
            <option id="menu-item-2" class="menu-item-2"><a></a></option>
            <option id="menu-item-20" class="menu-item-20"><a></a></option>
        </ul>
    </div>
</nav>
这是我在twenteleven主题中使用完全相同的函数时得到的结果(这是我想要的):

<nav class="page-name">
    <div class="menu-nav-menu-container">
        <select>
            <option id="menu-item-59" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-59">Sample Page </option>
            <option id="menu-item-60" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-60">&nbsp;&nbsp;News</option>
            <option id="menu-item-65" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-65">About   </option>
            <option id="menu-item-62" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-62">&nbsp;&nbsp;Contact Us</option>
            <option id="menu-item-63" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-63">&nbsp;&nbsp;Our Location</option>
            <option id="menu-item-61" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-61">History</option>
            <option id="menu-item-64" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-64">Links</option>
        </select>
    </div>
</nav>
Update

我解决了这个问题。显然,自定义菜单是在我使用另一个主题时选择的,我假设每个主题都会使用它。哦,不!我必须为每个主题分别选择自定义菜单。

1 个回复
SO网友:its_me

也许你做错了?这是一个指针。。。

In functions.php

// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
    \'primary\' => \'Primary Menu\',
) );
In header.php (或其他地方)

<?php wp_nav_menu( array( \'theme_location\' => \'primary\' ) ); ?>

结束

相关推荐

Remove post navigation links

我正在使用我自己的主题,我已经阅读了这些参考资料。对于注释,我使用注释。php模板位于我的主题文件夹中,但注释中没有代码。php创建导航链接,实际上是在标题和主要内容之间。