我想获得所有 "活动 "属性列表,附加到产品。
所以,如果属性存在,但不附加到任何产品上就不显示。
我可以像这样以下拉方式显示所有属性。
$attributes = wc_get_attribute_taxonomies();
if($attributes) {
echo '<select name="all-attributes" id="all-attributes">';
foreach ( $attributes as $attribute ) {
echo '<option value="' . $attribute->attribute_name . '">' . $attribute->attribute_label . '</option>';
}
echo '</select>';
}
但这样我就得到了所有的属性,甚至是没有附加的非活动属性。
如何获取所有 积极 在WooCommerce中,产品属性分类法附加到产品上?
要获得所有 积极 产品属性分类法 (附在产品上) 你将需要一个自定义的简单SQL查询,如下所示 (嵌入到一个php函数中):
function wc_get_active_attribute_taxonomies() {
global $wpdb;
return $wpdb->get_results( "
SELECT DISTINCT wat.*, tt.taxonomy
FROM {$wpdb->prefix}woocommerce_attribute_taxonomies wat
INNER JOIN {$wpdb->prefix}term_taxonomy tt
ON tt.taxonomy = CONCAT('pa_', wat.attribute_name)
INNER JOIN {$wpdb->prefix}term_relationships tr
ON tt.term_taxonomy_id = tr.term_taxonomy_id
WHERE tt.count > 0
" );
}
代码在您的活动子主题(或活动主题)的function.php文件中。经过测试,可以使用。
使用方法 (根据你的代码):
替换就好。
$attributes = wc_get_attribute_taxonomies();
改为:
$attributes = wc_get_active_attribute_taxonomies();
注:该查询输出还包括 "分类学 "参数。 该查询输出还包括 "分类学 "参数。