woocommerce - 在 Woocommerce 中使用自定义元查询自定义相关产品
问题描述
我一直在尝试在 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;}
解决方案
更改相关产品查询的正确过滤器钩子是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"
点击“清除瞬态”按钮……</p>
推荐阅读
- sql - 如何计算jsonb数组中的出现次数
- firebase - 如何在 Firebase 中将 EmailAuthProvider 与 FacebookAuthProvider 链接
- python - Unity:Mlagents-learn 问题
- uri - Android 10 - 无法对我在 getExternalFilesDir() 中创建的文件执行 PersistableUriPermission
- mysql - 如何在mysql查询中删除句子中的多余空格
- java - Java GridBagLayout 组件不会到指定位置
- javascript - Web Share API 在 iOS 上不起作用:Angular
- raml-1.0 - 如何让两个 raml 属性互斥?
- c++ - allocate new 零大小数组能有有效值吗?
- random - 谷歌表格脚本中的值之间的随机数不遵守最大/最小值