如何删除wp_NAV_MENU上的UL?

时间:2011-01-28 作者:haha

我在这个网站上搜索,发现了很多answers 对于这个问题。他们中的大多数人都没有研究我的主题。

这里有一个解决方案Ifound 它可以根据我的需要工作。

function wp_nav_menu_no_ul()
{
    $options = array(
        \'echo\' => false,
        \'container\' => false,
        \'theme_location\' => \'primary\'
    );

    $menu = wp_nav_menu($options);
    echo preg_replace(array(
        \'#^<ul[^>]*>#\',
        \'#</ul>$#\'
    ), \'\', $menu);

}
此代码将删除ul 在开始和结束时wp_nav_menu(). 所以在我的主题中我只写

<ul class="primary-nav">
<?php  wp_nav_menu_no_ul(); ?>
</ul>
但当我没有通过管理员添加或激活任何菜单时,问题又来了。http://domain.com/wp-admin/nav-menus.php

问题:

如何删除<div><ul>**</ul></div> 菜单是否处于活动状态。让我知道

我终于成功了:)functions.php

function wp_nav_menu_no_ul()
{
    $options = array(
        \'echo\' => false,
        \'container\' => false,
        \'theme_location\' => \'primary\',
        \'fallback_cb\'=> \'default_page_menu\'
    );

    $menu = wp_nav_menu($options);
    echo preg_replace(array(
        \'#^<ul[^>]*>#\',
        \'#</ul>$#\'
    ), \'\', $menu);

}

function default_page_menu() {
   wp_list_pages(\'title_li=\');
} 

header.php

<ul class="primary-nav">
<?php  wp_nav_menu_no_ul(); ?>
</ul>

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

函数wp\\u nav\\u menu采用fallback\\u cb参数,如果菜单不存在,该参数是要运行的函数的名称。因此,请将代码更改为以下内容:

function wp_nav_menu_no_ul()
{
    $options = array(
        \'echo\' => false,
        \'container\' => false,
        \'theme_location\' => \'primary\',
        \'fallback_cb\'=> \'fall_back_menu\'
    );

    $menu = wp_nav_menu($options);
    echo preg_replace(array(
        \'#^<ul[^>]*>#\',
        \'#</ul>$#\'
    ), \'\', $menu);

}

function fall_back_menu(){
    return;
}
您甚至可以从菜单中删除容器,并通过将更多参数发送到wp_nav_menu function

希望这有帮助。

SO网友:Martti Laine

实际上,WordPress默认支持:

wp_nav_menu(array(
    \'items_wrap\' => \'%3$s\'
));
的默认值items_wrap<ul id=\\"%1$s\\" class=\\"%2$s\\">%3$s</ul>.

SO网友:Dannamite

下面的代码应该很简单。

<?php 

  $my_menu = array( 
  \'menu\' => \'main-menu\',
  \'container\' => \'\',
  \'items_wrap\' => \'%3$s\' 
  );

  wp_nav_menu( $my_menu );

?>
有关wp\\U nav\\U菜单功能,请参考此链接http://codex.wordpress.org/Function_Reference/wp_nav_menu

SO网友:Pavlo Zamoroka

如果只想打印<a> 标签,您可以这样做:

$primaryMenu = array(
    \'theme_location\'  => \'primary\',
    \'menu\'            => \'\',
    \'container\'       => \'\',
    \'container_class\' => false,
    \'container_id\'    => \'\',
    \'menu_class\'      => \'menu\',
    \'menu_id\'         => \'primary-menu\',
    \'echo\'            => false,
    \'fallback_cb\'     => \'wp_page_menu\',
    \'before\'          => \'\',
    \'after\'           => \'\',
    \'link_before\'     => \'\',
    \'link_after\'      => \'\',
    \'depth\'           => 0,
    \'walker\'          => \'\'
);
echo strip_tags( wp_nav_menu( $primaryMenu ), \'<a>\' );

SO网友:Orbital Pixel

对我来说,有效的方法是:

<?php wp_nav_menu( array(
       \'container\' => \'\',
       \'items_wrap\' => \'%3$s\' 
) ); ?>
希望有帮助。

SO网友:Sumit Kumar Gupta

我知道这个答案并不完全针对这个问题,但有很多人知道如何在WordPress中删除ul和li标签,并在WordPress中添加另一个标签。

就像应用我的代码之前一样,WordPress在菜单中提供这些类型的输出

<ul class="*****"><li>abc</li></ul>
但是有人想把ul改成div,把li改成tag,那么你应该使用下面的代码

            <?php

                $menuParameters = array(
                    \'menu\' => \'primary_menu\',
                    \'link_before\'     => \'<span>\',
                    \'link_after\'      => \'</span>\',
                    \'before\'        => \'<div class="tp-primary-header mui-top-home">\',
                    \'after\'     => \'</div>\',
                    \'container\'       => false,
                    \'echo\'            => false,
                    \'depth\'           => 0,
                );

                echo strip_tags(wp_nav_menu( $menuParameters ), \'<a><span><div>\' );
                ?>
这将以以下格式提供输出

<div class="tp-primary-header mui-top-home"><a href="#"><span>ABC</span></a></div>
<div class="tp-primary-header mui-top-home"><a href="#"><span>def</span></a></div>
<div class="tp-primary-header mui-top-home"><a href="#"><span>XYZ</span></a></div>

结束

相关推荐

Menu API not switching menus?

我正在使用菜单API,我想切换到其他菜单,但出于某种原因,它保留了第一个菜单这是我的密码在函数中。php add_action( \'init\', \'register_my_menus\',10 ); function register_my_menus() { register_nav_menu(\'main-navigation\', \'Main Navigation\'); } 下面是我的主题文件(header.ph