首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress:排除类别

Wordpress:排除类别
EN

Stack Overflow用户
提问于 2015-09-17 18:00:30
回答 2查看 173关注 0票数 0

我想从我的主页中排除一个类别,但我的代码不起作用:

代码语言:javascript
复制
<?php if( $category_items_query->have_posts() ): ?>
    <div class="row columns-layout content-grid">
    <?php if( $layout === 'two' ): ?>

        <!-- EXCLUDE CATEGORY 17 -->
        <?php query_posts($query_string . '&cat=-17'); ?>

        <?php while( $category_items_query->have_posts() ): $category_items_query->the_post(); ?>

            <div class="col-lg-6 col-md-6 recent-item two-columns post-box">
                <?php get_template_part( 'parts/home-content', 'columns' ); ?>
            </div><!-- .two-columns -->
        <?php endwhile; ?>

    <?php endif; ?>
    </div><!-- .row -->

<?php endif; ?>

请帮帮我。谢谢Guido

EN

回答 2

Stack Overflow用户

发布于 2015-09-17 18:13:24

请不要使用query_posts,因为它是无效的,并重新运行sql查询,也会弄乱您的分页。

相反,使用pre_get_posts,例如

代码语言:javascript
复制
function exclude_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'cat', '-17' );
    }
}
add_action( 'pre_get_posts', 'exclude_category' );
票数 1
EN

Stack Overflow用户

发布于 2015-09-17 20:16:11

首先你必须像下面这样定义全局变量,然后你可以尝试你的代码。

代码语言:javascript
复制
     global $query_string;
     query_posts($query_string . '&cat=-17');

此外,还有另一种方法可以尝试:在function.php中:

代码语言:javascript
复制
    function exclude_category( $wp_query ) {
       $excluded = array( '-1' );
       $wp_query->set('category__not_in', $excluded);
       set_query_var( 'category__not_in', $excluded );
    }
    add_action( 'pre_get_posts', 'demo_exclude_category' );

在您的代码中(您可以按照自己的方式使用):

代码语言:javascript
复制
class Exclude_Cat_Plugin {

public function __construct() {
   add_action( 'pre_get_posts', array( $this,'exclude_first_category_posts') );
}

public function exclude_first_category_posts( $wp_query ) {

        if ( ! is_search() && ! is_archive() ) {
            $excluded = array( '-1' );
            $wp_query->set( 'category__not_in', $excluded );
            set_query_var( 'category__not_in', $excluded );
        }

  }

}

我希望这对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32627571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档