我在订购我的产品时遇到了问题,我在每个产品中都有一个名为"cheapest_worktop"的元值和一个数字值,
我正在使用筛选器"WooCommerce_Get_CATALOG_ORDING_ARGS"更改查询,以便它按元值进行排序:
$args["meta_key"] = "cheapest_worktop";
$args["orderby"] = "meta_value_num";
$args["meta_type"] = 'DECIMAL';
$args["order"] = "ASC";
$args["meta_query"] = array(
'relation' => 'AND',
array(
'key' => "cheapest_worktop",
'compare' => 'EXISTS', // Only retrieve products where the meta key exists
)
);
但它最终显示了有和没有Meta密钥的产品,
只有当我移除
$args["meta_key"] = "cheapest_worktop";
这会隐藏不具有meta_key的产品,但不会对其进行排序,最初只是
$args["meta_key"] = "cheapest_worktop";
$args["orderby"] = "meta_value_num";
$args["meta_type"] = 'DECIMAL';
$args["order"] = "ASC";
这确实工作,然后出于某种原因,它只是停止工作,而不是100%,为什么没有其他变化发生在网站上,没有更新,没有新的插件或代码什么都没有.
我用过
global $wp_query;
echo print_r($wp_query, true);
echo print_r($args, true);
仔细判断正在执行的$args,它们返回正确.
如有任何建议,我们将不胜感激.