【问题标题】:Wordpress 3.8.1 wp_nav_menu walker that doesn't work?Wordpress 3.8.1 wp_nav_menu walker 不工作?
【发布时间】:2014-02-23 21:06:41
【问题描述】:

为了尝试在我的全新主题中自定义菜单,我嵌入了一个包含一些参数的数组,如 URL http://codex.wordpress.org/Function_Reference/wp_nav_menu 上提供的支持页面所示

但是,这些值似乎被覆盖或无法正常工作。

这是我实现的代码

<?php 
    $defaults = array('container' => 'div', 'container_id' => 'menu', 'container_class' => '', 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 'fallback_cb' => 'wp_page_menu');
    wp_nav_menu( $defaults ); 
?>

这是输出

<div id="menu" class="menu-main-container"><ul id="menu-main" class="menu">test</ul></div>

虽然容器类是一个空字符串,但呈现的代码包含了一些意想不到的东西。

至于 items_wrap,请参阅“如果从格式字符串中省略编号标记,则从菜单标记中省略相关参数。”的指南,我想了解我可以做些什么来避免要打印的令牌 1 和 2。 我想我必须去找一个定制的助行器。是这样吗?

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    至于你的第一个问题(菜单类)。

    您并没有真正使用空字符串。通过将字符串留空,您实际上是在使用默认值:

    来自法典:

    $container_class (string) (optional) 应用于容器的类

        Default: menu-{menu slug}-container
    

    这就是你在代码中所拥有的......

    class="menu-main-container">
    

    至于第二个问题,要省略这些标记,只需在没有这些标记或带有特定参数的情况下添加另一个值 ..

    'items_wrap'      => '<ul id="my_whatever_id" class="my_whatever_class">%3$s</ul>',
    

    'items_wrap' => '%3$s'
    

    甚至是回调

     apply_filters("my_filter_menu_items_wrap",'<ul class="nav">%3$s</ul>'),
    

    话虽如此,我不确定默认类/值给您带来的干扰是什么。

    【讨论】:

    • 嗨,奥默克。要回答你的最后一个问题,我喜欢干净的 HTML 代码,而默认类不是那么干净,恕我直言。
    • @AndreaMoro Ho capito。请注意,省略这些类和 Id 可能会使其他人在某些情况下难以定位它(如插件或自定义代码)。例如,在处理小部件和侧边栏时更是如此。这些参数的存在是有原因的..
    • 也就是说,使用之前和之后,或者只是完全删除一些
    • 元素并不能解决我的问题,因为我一直看到类似
  • 好吧,我想删除长类名,最好用我的位替换。身份证也是一样。因此,如果您能将两者的详细信息传递给我,我们将不胜感激。
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签