正在生成WordPress菜单-无法理解配置

时间:2013-06-29 作者:Zayatzz

我创建了基于引导css的html模板,现在正试图从中创建wordpress主题。

为它创建了我自己的菜单功能,它基本上只是为wp\\u nav\\u菜单功能设置默认配置:

功能。php

<?php

function pin_menu(){

    $defaults = array(
        \'theme_location\'  => \'primary\',
        \'menu\'            => \'nav-menu\',
        \'container\'       => false,
        \'container_class\' => \'\',
        \'container_id\'    => \'\',
        \'menu_class\'      => \'nav-collapse collapse pull-right\',
        \'menu_id\'         => \'\',
        \'echo\'            => true,
        \'fallback_cb\'     => \'wp_page_menu\',
        \'before\'          => \'\',
        \'after\'           => \'\',
        \'link_before\'     => \'\',
        \'link_after\'      => \'\',
        \'items_wrap\'      => false,
        \'depth\'           => 1,
        \'walker\'          => \'\'
    );

    return wp_nav_menu( $defaults );
}
?>
所有这些都会打印出以下html:

<div class="nav-collapse collapse pull-right">
<ul>
<li class="page_item page-item-5"><a href="http://localhost/page5/">page5</a></li>
<li class="page_item page-item-7"><a href="http://localhost/page7/">page5</a></li>
<li class="page_item page-item-15"><a href="http://localhost/page15/">page15</a></li>
<li class="page_item page-item-17"><a href="http://localhost/page17/">page17</a></li>
<li class="page_item page-item-19"><a href="http://localhost/page19/">page19</a></li>
</ul>
</div>
我不明白为什么。

如果我读了法典:http://codex.wordpress.org/Function_Reference/wp_nav_menu

然后我将容器设置为false。。。然而,代码打印出div和我为menu\\u类输入的类。

它用ul包装链接,即使我已将items\\u wrap设置为false。

但这不是我想要的。我真的很喜欢这张打印出来的照片,但我真的听不懂。我也想要这个ul,它将菜单项包装成特定的类别。。

但当我将items\\u wrap设置为<ul class="nav">%3$s</ul> 然后什么都不会改变。。。

如果我需要以下配置,正确的配置是什么:

<div class="nav-collapse collapse pull-right">
<ul class="nav">
<li class="page_item page-item-5"><a href="http://localhost/page5/">page5</a></li>
<li class="page_item page-item-7"><a href="http://localhost/page7/">page5</a></li>
<li class="page_item page-item-15"><a href="http://localhost/page15/">page15</a></li>
<li class="page_item page-item-17"><a href="http://localhost/page17/">page17</a></li>
<li class="page_item page-item-19"><a href="http://localhost/page19/">page19</a></li>
</ul>
</div>
ThanksAlan公司

编辑:Codex还表示,如果您想移除ul包装,您需要执行以下操作:

<?php wp_nav_menu( array( \'items_wrap\' => \'%3$s\' ) ); ?>
很抱歉,就我所知,设置items\\u wrap不会更改任何内容。

Edit2:好吧,我想这似乎是添加太多统计数据的问题。如果我确实这样做:

<?php wp_nav_menu( array( \'items_wrap\' => \'%3$s\' ) ); ?>
那就行了,但其他东西不是我想要的。所以我想,我必须设置最少量的设置,这是可行的。

Edit3:显然不同的设置在某个地方相互冲突。。。当我将设置更改为以下内容时,我得到了想要的:

<?php

function pin_menu(){

    $settings = array(
        \'container\'       => \'div\',
        \'container_class\' => \'nav-collapse collapse pull-right\',
        \'container_id\'    => \'\',
        \'menu_class\'      => \'\',
        \'menu_id\'         => \'\',
        \'echo\'            => true,
        \'fallback_cb\'     => \'wp_page_menu\',
        \'before\'          => \'\',
        \'after\'           => \'\',
        \'link_before\'     => \'\',
        \'link_after\'      => \'\',
        \'items_wrap\'      => \'<ul class="nav">%3$s</ul>\',
        \'depth\'           => 1,
        \'walker\'          => \'\'
    );

    return wp_nav_menu( $settings );
}
?>

1 个回复
最合适的回答,由SO网友:Lilumi 整理而成

如果设置选项“theme\\u location”=>“primary”,则需要确保已通过函数中的代码注册此菜单。php:

register_nav_menu( \'primary\', \'Primary Menu\' );
然后,您需要确保在此处的主题位置设置了主菜单:/wp admin/nav Menu。php

否则,wordpress将调用fallback函数,该函数是带有默认选项的wp\\u page\\u菜单。

如果您删除“theme\\u location”选项,您将获得在“menu”选项中设置的菜单(在您的情况下,是名为“nav menu”的菜单)。如果此菜单不存在,wordpress将显示第一个创建的菜单。如果您没有创建任何自定义菜单,wordpress将调用fallback。

结束

相关推荐

Custom menus not showing

作为我上一次关于菜单的未解决查询的后续,这个问题已经进一步扩展。我的菜单没有打印代码中的任何地方。我正在注册菜单功能。php:add_action( \'after_setup_theme\', \'your_newtheme_setup\' ); if ( ! function_exists( \'your_newtheme_setup\' ) ) : function your_newtheme_setup() { if (