我为联盟营销业务购买了 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 知识,所以我不知道该怎么做以及如何做?我被困在这里,希望能得到专家的帮助。提前致谢
2 回答
偶然的你
TA贡献1841条经验 获得超3个赞
试试这个代码。
if(is_home() || is_front_page()){
$args_active_coupons['tax_query'][] = array(
'taxonomy' => 'offer_categories',
'field' => 'id',
'terms' => array(214),
'operator' => 'NOT IN',
);
}
呼如林
TA贡献1798条经验 获得超3个赞
如果要对所有排除的类别进行硬编码,则必须将类别 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' );
此处:CAT_ID 应排除类别 id。
在另一种方式中,您可以使用插件:https : //wordpress.org/plugins/ultimate-category-excluder/
- 2 回答
- 0 关注
- 147 浏览
添加回答
举报
0/150
提交
取消