woocommerce\u输出\u相关产品\u args挂钩未按预期工作

woocommerce\u输出\u相关产品\u args挂钩未按预期工作,woocommerce,hook-woocommerce,Woocommerce,Hook Woocommerce,我想在“相关产品”部分中显示id为64391的特定产品,但以下代码不适用于此。我错过什么了吗 add_filter( 'woocommerce_output_related_products_args','msrp_reconfigure_related_products_args', 20 ); public function msrp_reconfigure_related_products_args($args) { $args['posts_p

我想在“相关产品”部分中显示id为64391的特定产品,但以下代码不适用于此。我错过什么了吗

 add_filter( 'woocommerce_output_related_products_args','msrp_reconfigure_related_products_args', 20 );

     public function msrp_reconfigure_related_products_args($args)
      {

        $args['posts_per_page'] = 5; 
        $args['columns'] = 5;
        $args['post__in'] = array(64391);

        return $args;
}
如你所见。过滤器挂钩
woocommerce\u output\u related\u products\u args
通过
wc template functions.php
文件触发,并将其返回传递给
woocommerce\u related\u products
函数。因此,
$args
参数不是db query中使用的args,您不能在其中使用
post\u-in

相反,要将特定产品添加到“相关产品”部分,您可以使用
woocommerce\u related\u products
过滤器,如下所示:

add_filter('woocommerce_related_products', 'add_related_products');
function add_related_products($related_product_ids)
{
    // WC source code stores IDs as string in this array, so I did that too
    $related_product_ids[] = '81';
    return $related_product_ids;
}
经过测试,它正在工作


注意:此筛选器挂钩有3个参数:
$related\u posts
$product\u id
$args
。通过检查
$product\u id

何时调用此筛选器,可以将这些新产品限制为仅显示在特定的单个产品页面上?我在单一产品页面上尝试了它,但它没有被调用