通过子菜单按类别动态筛选

时间:2013-06-05 作者:user1374796

我想知道是否有可能通过我设置的子菜单按类别动态过滤我的自定义帖子类型<因此,我设置了一个自定义帖子类型:news 并启用我可以分配给每个帖子的类别,例如活动、特辑、展览等。
然后,我设置了一个链接到这些类别的WP菜单,尽管目前我已经为每个类别存档设置了单独的类别模板
例如。category-11.php (类别ID:11)查询新闻帖子如下:<?php query_posts(\'post_type=news&cat=11\'); ?>

category-12.php (类别ID:12)查询新闻帖子,如:<?php query_posts(\'post_type=news&cat=12\'); ?><等等等等<但是当我将要移交这个网站时,客户将无法为他们添加的每个新类别设置新的模板文件。那么,是否可以通过子菜单使用category.php 而不是每次都设置新模板<我知道,有点遥不可及。如有任何建议,将不胜感激!

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

打开过滤器后,您似乎要问的问题相对容易pre_get_posts.

function set_post_type_for_category_archive_wpse_101930($qry) {
  if ($qry->is_main_query() && $qry->is_category()) {
    $qry->set(\'post_type\', \'news\');
  }
}
add_action(\'pre_get_posts\',\'set_post_type_for_category_archive_wpse_101930\');
这将劫持你的整个分类档案。这就是为什么我问你是否“想强制你的分类档案只显示新闻帖子类型中的帖子”。从您的反应和代码来看,您似乎做到了。

这样,您就不需要category-%n.php 文件,只是category.php 文件

结束