排除Wordpress帖子在特定类别的主页上显示

时间:2013-11-26 11:49:35

标签: php wordpress

这是一个棘手的问题......

如果帖子被标记为“类别A”,我希望将其从主页中排除。这可以通过以下代码实现:

function exclude_category($query) 
{
    if ( $query->is_home() ) 
    {
        $query->set('cat', '-3804');
    }
    return $query;
}

add_filter('pre_get_posts', 'exclude_category');

但如果帖子被标记为“类别A”和“类别B”,我希望它显示在主页上。我如何调整我的代码以实现此目的?

2 个答案:

答案 0 :(得分:3)

嗨,只是前一个答案

function exclude_category($query) 
{
$categories = get_categories();
$catarray="";
foreach ($categories as $category) {
if ($category->cat_ID !="<your category ID>")
{
    $catarray .=$category->cat_ID.",";
}
    }
rtrim($catarray, ",");
if ( $query->is_home() ) 
{
    $query->set('cat', $catarray);
}

}
return $query;


add_filter('pre_get_posts', 'exclude_category');

答案 1 :(得分:1)

您可能已经想到这一点,但是如果项目仅在A类中显示与显示除A类别之外的每个类别相同,则不显示;

function exclude_category($query) 
{
    if ( $query->is_home() ) 
    {
        $query->set('cat', 'B,C,D,E,F');
    }
    return $query;
}

add_filter('pre_get_posts', 'exclude_category');