使用wp_NAV_MENU设置IF条件

时间:2014-05-01 作者:Mr.Happy

我已经创建了一个新菜单,并在页脚中添加了下面的代码。php显示我的菜单

wp_nav_menu( array(\'menu\' => \'footer-cn\', \'menu_id\' => \'nav\', \'menu_class\' => \'ft-nav\' ));
目前我没有在这个菜单中添加任何页面,所以我想设置一些条件,如果其中有可用的页面footer-cn 然后显示菜单。

我想设置以下条件:

<?php
    if(){ // Some condition
        wp_nav_menu( array(\'menu\' => \'footer-cn\', \'menu_id\' => \'nav\', \'menu_class\' => \'ft-nav\' ));
    }
?>
有可能吗?

谢谢

enter image description here

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

当导航菜单为空时,无需在此处使用条件来隐藏导航菜单。

看看wp_nav_menu( $args );. 它接受以下参数

$defaults = array(
    \'theme_location\'  => \'\',
    \'menu\'            => \'\',
    \'container\'       => \'div\',
    \'container_class\' => \'\',
    \'container_id\'    => \'\',
    \'menu_class\'      => \'menu\',
    \'menu_id\'         => \'\',
    \'echo\'            => true,
    \'fallback_cb\'     => \'wp_page_menu\',
    \'before\'          => \'\',
    \'after\'           => \'\',
    \'link_before\'     => \'\',
    \'link_after\'      => \'\',
    \'items_wrap\'      => \'<ul id="%1$s" class="%2$s">%3$s</ul>\',
    \'depth\'           => 0,
    \'walker\'          => \'\'
);

wp_nav_menu( $defaults );
这里最重要的是\'fallback_cb\'

$fallback\\u cb(字符串)(可选)

如果菜单不存在,请使用回退功能。设置为false表示无回退。注意:将$args传递给自定义函数。

默认:wp\\u page\\u菜单

因此,要在菜单为空时隐藏菜单,只需将其添加到参数中即可

\'fallback_cb\' => false
所以你的最终代码应该是

wp_nav_menu( array(\'menu\' => \'footer-cn\', \'menu_id\' => \'nav\', \'menu_class\' => \'ft-nav\',  \'fallback_cb\' => false));

结束