Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 搜索页面上的自定义菜单丢失_Wordpress_Search_Header_Menu - Fatal编程技术网

Wordpress 搜索页面上的自定义菜单丢失

Wordpress 搜索页面上的自定义菜单丢失,wordpress,search,header,menu,Wordpress,Search,Header,Menu,这件事让我摸不着头脑,所以提前谢谢你的帮助。非常感谢 我在WP 3.0.1中有一个菜单,我在header.php中使用以下命令调用它: wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); 除了搜索结果,它在每个页面上都显示得很好。search.php文件以标准的get_header()开头所以它必须是wp\u nav\u菜单代码对吗?但是中没有任何东西是

这件事让我摸不着头脑,所以提前谢谢你的帮助。非常感谢

我在WP 3.0.1中有一个菜单,我在header.php中使用以下命令调用它:

wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) );
除了搜索结果,它在每个页面上都显示得很好。search.php文件以标准的
get_header()开头所以它必须是
wp\u nav\u菜单
代码对吗?但是
中没有任何东西是有条件的

输出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>

  • 链接1
  • 链接2
但是,它可以到达
,并且不输出任何
  • s:

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

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

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

    请尝试以下代码:

    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中。

    @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' );
    

    我也有同样的问题,只是我的搜索页面上列出了页面,你的代码修复了这个问题。很高兴它确实帮助了你:)Wordpress将导航视为一种帖子类型,所以我们需要做的就是将其包含在Wordpress搜索页面中。我做了完全相同的事情,但导航消失了。。我刚刚定制了我的搜索查询:代码:有人能帮我吗?哇!伟大!非常感谢。媒体库搜索的好地方。很确定这已经在core中解决了,但我想我应该接受一个答案。我做了完全相同的事情,但是导航消失了。。我刚刚定制了一点搜索查询:代码:有人能帮我吗?