【问题标题】:Custom menu on search page missing搜索页面上的自定义菜单丢失
【发布时间】:2011-05-12 11:54:34
【问题描述】:

我一直在为这个问题摸不着头脑,所以在此先感谢您的帮助。非常感谢。

我在 WP 3.0.1 中有一个菜单,我在 header.php 中使用:

wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) );

它在搜索结果之外的每个页面上都显示良好。 search.php 文件以标准get_header(); 开头,所以它必须是wp_nav_menu 代码,对吧?但是is_search() 条件或任何东西都没有包含任何内容。

输出的 HTML 应该如下所示:

<div class="menu-header">
    <ul id="menu-main-menu" class="menu">
        <li class="menu-item">
            <a>Link 1</a>
        </li>
        <li class="menu-item">
            <a>Link 2</a>
        </li>
    </ul>
</div>

但相反,它会到达&lt;ul&gt; 并且不输出任何&lt;li&gt;s:

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

最奇怪的。有没有其他人遇到过这个?是不是太晚了,我错过了一些明显的东西?

【问题讨论】:

    标签: wordpress search header menu


    【解决方案1】:

    @ZoulRic 的代码工作正常,但它破坏了媒体库中的搜索功能。为了防止这种添加:

    if( !is_admin() )
    

    就在最后一行之前,因此您的代码如下所示:

    function menu_fix_on_search_page( $query ) {
       if(is_search()){
           $query->set( 'post_type', array(
            'attachment', 'post', 'nav_menu_item', 'film', 'music'
              ));
             return $query;
             }
       }
    if( !is_admin() ) add_filter( 'pre_get_posts', 'menu_fix_on_search_page' );
    

    【讨论】:

    • 媒体库搜索的好地方。很确定这已经在核心解决了,但我认为无论如何我应该接受答案。
    • 我做了完全相同的事情,但导航消失了。我只是稍微定制了我的搜索查询:代码:css-tricks.com/snippets/wordpress/… 有人可以帮我吗?
    【解决方案2】:

    您可能设置了一个过滤器来拦截负责生成导航菜单链接的查询,或者更具体地说,覆盖查询对象所需的“nav_menu_item”帖子类型。

    【讨论】:

      【解决方案3】:

      试试这个代码:

      function menu_fix_on_search_page( $query ) {
          if(is_search()){
              $query->set( 'post_type', array(
               'post', 'nav_menu_item'
                  ));
                return $query;
          }
      }
      add_filter( 'pre_get_posts', 'menu_fix_on_search_page' );
      

      将其粘贴到主题文件中的functions.php中。

      【讨论】:

      • 我遇到了同样的问题,只是我的搜索页面上列出了页面,您的代码解决了这个问题。
      • 很高兴它对您有所帮助 :) Wordpress 将导航视为一种帖子类型,因此我们需要做的就是将其包含在 wordpress 搜索页面中
      • 我做了完全相同的事情,但导航消失了。我只是稍微定制了我的搜索查询:代码:css-tricks.com/snippets/wordpress/… 有人可以帮我吗?
      • 哇!伟大!谢谢!!
      猜你喜欢
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多