为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
明月笑刀无情 2021-11-26 19:55:41
我为联盟营销业务购买了 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', 

    );

}


查看完整回答
反对 回复 2021-11-26
?
呼如林

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/


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信