我需要做的是在URL中为属性应用值,因此只显示与该属性匹配的产品 . 我不想在页面上做任何小部件或其他可见的过滤器 .
为此我假设我需要使用webhooks中的一个,并过滤掉即将显示的所有产品 .
任何人都可以建议哪种钩子在这种情况下最好,并简单说明触发功能将如何返回新的产品阵列?
提前致谢!
注意:我还想查询一个自定义属性,它没有任何术语,只是一个直接键/值 .
UPDATE 1 我'm playing with two techniques; one is very reliable, and that' s基本上用来:
if (!$product->attributes || $product->get_attribute( 'testKey' ) != $_GET["testKey"]) {
//return;
}
在 content-product.php 的顶部,但当然WooCommerce仍然会说find_posts的原始值 . 当然不理想 .
我发现这样的事情应该在 functions.php 中起作用:
function testFilter($meta_query) {
$meta_query[] = array (
'key' => 'testKey',
'value' => 'testVal',
'compare' => '='
);
return $meta_query;
}
add_filter( 'woocommerce_product_query_meta_query', 'testFilter', 9 );
除非它没有,返回没有结果,如果我使用LIKE,EXISTS等无关紧要 . 我使用它错了吗?
UPDATE 2 我不会说这是答案,因为这似乎只在一组自定义属性中寻找一个值,但this result有所帮助 .
1 回答
您应该使用您的属性分类标记替换“pa_size”,并使用正确的URL参数替换$ _GET ['pa_size'] .
您可以使用上述代码按属性过滤产品 . 我没试过这个 . 但是,这可能会对你有所帮助 .