如何使用php函数而不是默认的WP函数从主页中排除类别?



我为联盟营销业务购买了一个WordPress主题。我的网站上有1000 +商店,因此主页上有数百张优惠券。我只需编写一个短代码即可获取所有优惠券,它们开始出现在主页上。所有优惠券都基于不同的类别。

我如何从主页中排除许多优惠券,只有当我们可以根据其ID从主页中排除某些类别时,这才有可能。

我谷歌了很多次,但每次我都找到了"pre_get_posts"功能来做到这一点。但就我而言,它根本不起作用。代码如下

function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-5' );
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );

通过这段代码,我试图排除所需的类别。我还尝试以不同的方式修改上面的代码,但我的解决方案/想法都没有奏效。 我认为上述代码不起作用的原因是什么,该功能仅适用于"帖子"下的默认"类别"选项"在仪表板上。我的类别来自仪表板上的另一个选项,即"优惠券" ->"优惠类别"。

查看屏幕截图:产品/服务类别

可能是也可能不是,我需要修改上述函数,使其可以选择我预期的类别。但是由于我缺乏PHP知识,所以我不知道该做什么以及如何做?

我被严重困在这里,希望从专家那里得到一些帮助。

提前致谢

试试这段代码。

if(is_home() || is_front_page()){
$args_active_coupons['tax_query'][] = array( 
'taxonomy' => 'offer_categories', 
'field' => 'id', 
'terms' => array(214), 
'operator' => 'NOT IN', 
);
}

如果要对所有排除的类别进行硬编码,则必须将类别ID与(-(前缀放在一起。

function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-<CAT_ID>, -<CAT_ID>, -<CAT_ID>' );
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );

此处:应排除类别 ID CAT_ID。

换句话说,您可以使用插件: https://wordpress.org/plugins/ultimate-category-excluder/

最新更新