在WooCommerce产品查询中筛选自定义TEXTAREA类型属性NOT EMPTY



我有一个自定义的产品属性名称affiliate_link,它是TEXTAREA类型的字段。

在我的产品查询中,我想隐藏所有该字段为空的产品。

为此,我在function.php中写了这篇文章,但它不起作用?

add_filter('woocommerce_product_query_tax_query', 'custom_product_query_meta_query', 10, 2);
function custom_product_query_meta_query( $tax_query, $query ) {

$taxonomy = 'pa_affiliate_link';
$tax_query[] = array(
'taxonomy' => $taxonomy,
'field' => 'name',
'terms' =>  '',
'operator' => '!='
);
return $tax_query;
}

我也尝试过使用这个:

add_filter('woocommerce_product_query_tax_query', 'custom_product_query_meta_query', 10, 2);
function custom_product_query_meta_query( $tax_query, $query ) {

$taxonomy = 'pa_affiliate_link';
$tax_query[] = array(
'taxonomy' => $taxonomy,
'field' => 'name',
'terms' =>  array(''),
'operator' => 'NOT IN'
);
return $tax_query;
}

但上面的代码不起作用,而是返回所有结果,即使它有一个空的affiliate_link字段。

请告诉我如何解决这个问题?

试试这样的方法。可能需要稍作调整,因为我还没有测试过这一点,但这与上面使用元与分类法基本相同。

add_filter('woocommerce_product_query_meta_query', 'custom_product_query_meta_query', 10, 2);
function custom_product_query_meta_query( $meta_query, $query ) {
$meta_query[] = array(
'key'     => 'affiliate_link',
'value' => '',
'compare' => '!='
);
return $meta_query;
}

最新更新