php - Woocommerce 元查询在 product_query 中不起作用
问题描述
我想使用过滤器更改 woocommerce 产品页面循环中的产品
我正在尝试从 url 过滤wordpress.test/shop?filterbyAge=23
,现在我在函数文件中添加了代码但不起作用
我在产品中使用 ACF 插件创建了猫科动物
function updateQueryByAgeFilter( $q ){
if (isset($_GET['filterbyAge'])) {
$q->set('meta_query', [
[
'key' => 'book_age_group',
'value' => $_GET['filterbyAge'],
'compare' => '='
]
]);
}
}
add_action( 'woocommerce_product_query', 'updateQueryByAgeFilter' );
请帮我解决这个问题
解决方案
似乎缺少合并查询
所以你得到:
// Change the shop query
function action_woocommerce_product_query( $q, $query ) {
// Returns true when on the product archive page (shop) & isset
if ( is_shop() && isset( $_GET['filterbyAge'] ) ) {
// Get any existing meta query
$meta_query = $q->get( 'meta_query' );
// Settings
$key = 'book_age_group';
$value = $_GET['filterbyAge'];
$meta_query[] = array(
'key' => $key,
'value' => $value,
'compare' => '='
);
// Set the new merged meta query
$q->set( 'meta_query', $meta_query );
}
}
add_action( 'woocommerce_product_query', 'action_woocommerce_product_query', 10, 2 );
推荐阅读
- r - RShiny 应用程序无法连接到 SQL Server
- php - 为用户插入的每个自定义分类术语自动创建新帖子
- apache-spark - 根据 Pyspark 数据框中的条件分配分数
- google-cloud-platform - Google Cloud Platform Pub Sub - Python 客户端不发布消息
- python - 在 Python 中使用 StatsModels 运行 GLM
- android - 我需要 scaleType="matrix" 以便在 ImageView 中拖动对象。我希望使用默认的 fit_center 使图像更小
- php - 在 PHP MYSQLI 中将 3 个或更多表链接在一起以创建墙提要
- webpack - 使用 mode 和 webpack.EnvironmentPlugin 是多余的吗?
- wordpress - 如何在没有wordpress页面的情况下重定向wp过去的网站
- c# - 我应该在哪里调用 C#.NET 中不兼容类型转换的打印函数?