如何从自定义页面模板中排除特定目录

时间:2015-01-14 作者:Alex Douglas

我有一个自定义页面模板,它使用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。

有可能做到这一点吗?

1 个回复
最合适的回答,由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\');
结束

相关推荐

WP update_post_meta link loop

我试图通过循环中的链接更新帖子元。这是代码function make_sticky($post_id) { // Update, add, or delete field ---------------------------------- if ( get_post_meta($post_id, \'sticky\', FALSE ) ) { if ( get_post_meta($post_id, \'sticky\', \'1\' ) ) {&