WP_NAV_MENU有几页未显示

时间:2011-12-01 作者:Jared

我解决了页面的问题,正确答案是ptriek在下面的评论

嗯,我这里有一个奇怪的问题,wp\\u nav\\u菜单适用于除我的分类页面以外的所有页面(可能也是我的存档页面,但网站上没有指向存档页面的链接,所以没关系)。

虽然有存档。php在我的主题文件中,它控制类别、标记、存档、作者等页面上显示的内容。

我只是不明白为什么,因为每个页面都使用相同的标题。php显示wp\\u nav\\u菜单,它不会显示在类别页面中。

我是否忽视了什么?我一直在用我的头敲击键盘,试图弄明白这一点,但它就是不起作用!

使用非常简单的代码:<?php wp_nav_menu(\'container_class=menu-header&theme_location=primary\'); ?>

4 个回复
最合适的回答,由SO网友:Implode 整理而成

我也有同样的问题,但是使用了更新版本的Wordpress(3.7.1)。

在具有自定义帖子的自定义分类的页面上,未显示wp\\u nav\\u菜单。下面的解决方案对我有效。

在函数中。主题php:

add_action( \'pre_get_posts\', \'my_pre_get_posts\' );
function my_pre_get_posts($query) {
  if ($query->get(\'post_type\') === \'nav_menu_item\') {
    $query->set(\'tax_query\',\'\');
  }
}

SO网友:user2447452

内爆的答案是正确的,对我帮助很大。我试着用钩子(pre_get_posts) 避免显示子类别的帖子。尽管没有更多导航菜单,但我的挂钩工作得很好。

因此,当更改tax_query 您必须避免对查询执行此操作post_type == \'nav_menu_item\'.

SO网友:sambua

只有在不使用“meta\\u key”等其他查询的情况下,才能通过内爆来解决问题。我找到了完整的解决方案here.

function fix_nav_menu( $query ) {
    if ( $query->get( \'post_type\' ) === \'nav_menu_item\' ) {
        $query->set( \'tax_query\', \'\' );
        $query->set( \'meta_key\', \'\' );
        $query->set( \'orderby\', \'\' );
    }
}

add_action( \'pre_get_posts\', \'fix_nav_menu\' );

SO网友:Aswana

这个适合我。在最后一篇帖子/评论的第二个链接中找到了答案:https://wordpress.org/support/topic/wp-nav-menu-dissapears-in-category-pages-1/?replies=15#post-1859168

只需要在主题的功能中添加这个。php文件

add_filter(\'pre_get_posts\', \'query_post_type\');
function query_post_type($query) {
  if(is_category() || is_tag()) {
    $post_type = get_query_var(\'post_type\');
    if($post_type)
        $post_type = $post_type;
    else
        $post_type = array(\'nav_menu_item\',\'post\',\'articles\');
    $query->set(\'post_type\',$post_type);
    return $query;
    }
}

结束

相关推荐

User level categories

我正在使用ClassiPress创建一种不同类型的列表分类广告。我将手动选择谁可以订阅或不订阅(仅限宗教机构的领导人类型)。我有四个类别。其中两个需要随时提供给每个人(浏览)。这四个将提供给领导者。领导者将能够在所有四个类别中发布,并且他们将能够查看/发布所有四个类别。But 主要公众只会看到两个。我该怎么办?我可以将需要登录的两个类别设置为php条件行。我在这里看到了类似的解决方案How to block a category from one user and enable the category