Wordpress 搜索页面上的自定义菜单丢失
这件事让我摸不着头脑,所以提前谢谢你的帮助。非常感谢 我在WP 3.0.1中有一个菜单,我在header.php中使用以下命令调用它: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_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中解决了,但我想我应该接受一个答案。我做了完全相同的事情,但是导航消失了。。我刚刚定制了一点搜索查询:代码:有人能帮我吗?