将 woocommerce 产品属性获取到侧边栏

Get woocommerce product attributes to sidebar

我想在 woocommerce 侧边栏中显示所有可用的产品属性。根据我使用的设计和插件,很难使用小部件框here.So我选择循环所有可用的产品属性并将它们显示在侧边栏中。

我尝试了 woocommerce 上可用的以下方法 docs,

  1. get_attribute()
  2. get_attributes()
  3. get_variation_attributes()

也尝试了一些堆栈答案。

global $product;
$product->get_attributes();

但我得到的仍然是一个空数组。

我的侧边栏包含在 woocommerce 存档页面中。如何获取属性名称及其值?

您可以在自定义短代码函数中使用 Woocommerce 专用 wc_get_attribute_taxonomies() 函数,该函数将输出所有产品属性的列表。

然后您就可以将它添加到侧边栏的文本小部件中了(见文末)

简码[product_attributes]代码:

add_shortcode( 'product_attributes', 'get_product_attributes' );
function get_product_attributes() {
    $output = '<ul style="list-style:none;">';
    foreach( wc_get_attribute_taxonomies() as $attribute ) {
        $taxonomy = 'pa_' . $attribute->attribute_name;
        $term_names = get_terms( array( 'taxonomy' => $taxonomy, 'fields' => 'names' ) );

        $output .= '<li><strong>' . $attribute->attribute_label . ':</strong> ' . implode( ', ', $term_names ) . '</li>';
    }
    return $output . '</ul>';
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。测试和工作。


然后您将在侧边栏中添加一个新的文本小部件,并将简码粘贴到文本编辑器中以获取产品属性列表…