我有一个自定义页面模板,它使用wordpress循环像往常一样显示我的所有帖子:
<?php if (have_posts()) : while (have_posts()) : the_post();
我不想在此页面上显示一个类别。该类别的id为3。
所以我想我可以用这样的东西:
<?php if (have_posts()) : while (have_posts()) : the_post();
if ( in_category(\'3\') ) continue;
the_content();
endwhile;
endif;
?>
但仍将显示具有此类别ID的帖子。
我还尝试将其添加到函数中。php:
function exclude_category($query) {
if (isset($query)) {
$query->set(\'cat\', \'-3\');
}
return $query;
}
add_filter(\'pre_get_posts\', \'exclude_category\');
这是可行的,但它对网站上的每个页面都是全局的(显然),这是我不想要的。我只想从这个单页模板中删除类别ID。
有可能做到这一点吗?
最合适的回答,由SO网友:darrinb 整理而成
Did you try:
function exclude_category($query) {
if ( is_page(\'slug-of-page\') && isset($query) ) {
$query->set(\'cat\', \'-3\');
}
return $query;
}
add_filter(\'pre_get_posts\', \'exclude_category\');