我想在首页上显示的帖子列表中默认排除某个类别。我发现如何用pre_get_posts钩子整齐地做到这一点。它工作正常,类别帖子不在节目。
现在我想只显示这些类别的帖子,如果我专门查询这个类别。因此,要么显示不属于此类别的所有帖子(默认),要么只显示此猫的帖子而不显示任何其他帖子。
我认为解决方案很简单,但我的代码不起作用:
//Don't show posts with cat id 6
$excluded = array('6');
//Retrieve category parameter from current query
$categ = get_query_var('cat');
//If the current query doesn't ask for cat 6 specifically,
//exclude this category
if ($categ != '6') {
set_query_var('category__not_in', $excluded);
}
但是当我查询特定类别时,仍然没有显示任何内容,所以显然我的if语句错了?我想当我查询类别时,get_query_var(' cat')会返回cat id?
答案 0 :(得分:0)
通过https://wordpress.stackexchange.com/questions/26889/get-query-var-and-permalinks
找到答案显然,当使用漂亮的固定链接时,Wordpress会执行一些内部操作,以便在查询中不设置类别ID,而是使用类别名称。所以我只是将类别解析改为
$categ = get_cat_ID(get_query_var('category_name'));
它工作正常。 Wordpress的另一个想法是惹恼开发者lol