2010-11-19 59 views
3

我一直在挠挠我的头,因此提前感谢任何帮助。非常感激。搜索页面上的自定义菜单丢失

我得在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> 

但是,相反,它只要<ul>变得不输出任何<li> S:

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

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

回答

4

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

媒体库搜索的好处。很确定这已经被核心解决了,但我认为我应该接受一个答案。 – SqrBrkt 2012-11-15 01:18:59

+0

我做了同样的事情,但导航消失无论如何..我只是定制我的搜索查询了一下:代码:https://css-tricks.com/snippets/wordpress/make-archives-php-include-custom- post-types /#comment-1594317有人可以帮我吗? – 2015-05-07 20:38:17

4

您可能已经设置了拦截负责生成导航菜单链接的查询的过滤器,或者更具体地说,覆盖查询对象所需的'nav_menu_item'发布类型。

4

试试这个代码:

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这一点。

+0

我只有网页被列入我的搜索页面上的同样的问题,你的代码固定的。 – elbatron 2012-05-26 09:45:36

+1

很高兴它确实帮了你:) WordPress的对待导航作为一种职位类型,所以我们需要做的就是将其包括在wordpress搜索页面 – ZoulRic 2012-06-04 09:39:16

+0

我做了同样的事情,但导航消失无论如何..我只是定制我的搜索查询有点:代码:https://css-tricks.com/snippets/wordpress/make-archives-php-include-custom-post-types/#comment-1594317有人可以帮助我吗? – 2015-05-07 20:38:42