在某些情况下,WordPress 从循环中隐藏或显示类别
Wordpress hide or show category from loop in certain cases
我想在首页显示的帖子列表中默认排除某个类别。我发现了如何使用 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') 会 return 猫 ID?
通过https://wordpress.stackexchange.com/questions/26889/get-query-var-and-permalinks找到答案
显然,当使用漂亮的永久链接时,Wordpress 会进行一些内部操作,例如在查询中不设置类别 ID,而是类别名称。所以我只是将类别分辨率更改为
$categ = get_cat_ID(get_query_var('category_name'));
而且效果很好。另一个让开发人员恼火的 Wordpress 想法 lol
我想在首页显示的帖子列表中默认排除某个类别。我发现了如何使用 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') 会 return 猫 ID?
通过https://wordpress.stackexchange.com/questions/26889/get-query-var-and-permalinks找到答案
显然,当使用漂亮的永久链接时,Wordpress 会进行一些内部操作,例如在查询中不设置类别 ID,而是类别名称。所以我只是将类别分辨率更改为
$categ = get_cat_ID(get_query_var('category_name'));
而且效果很好。另一个让开发人员恼火的 Wordpress 想法 lol