我一直在尝试定制woocommerce中的相关产品。我已经使用woocommerce_output_related_products_args添加meta_query选项,但是它们没有效果,这是我的代码:
add_filter( 'woocommerce_output_related_products_args',
'custom_related_products_args' );
function custom_related_products_args( $args ) {
$args['posts_per_page'] = 4;
$args['columns'] = 4;
$args['meta_query'] = array(
array(
'key' => 'public_catalog',
'value' => true
),
);
return $args;}
答案 0 :(得分:2)
更改相关产品查询的正确过滤器钩子是woocommerce_product_related_posts_query
...要设置帖子元查询,您将使用以下(请参阅结尾处的注释)
add_filter( 'woocommerce_product_related_posts_query', 'alter_product_related_posts_query', 10, 3 );
function alter_product_related_posts_query( $query, $product_id, $args ){
global $wpdb;
$query['join'] .= " INNER JOIN {$wpdb->postmeta} as pm ON p.ID = pm.post_id ";
$query['where'] .= " AND pm.meta_key = 'public_catalog' AND meta_value LIKE '1' ";
return $query;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
注意:在后端(管理员)的
Woocommerce
>Status
>Tools
>"WooCommerce transients"
下,点击“清除瞬态”按钮…