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

时间:2018-12-12 11:33:39

标签: php wordpress woocommerce shortcode custom-taxonomy

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

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

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

还尝试了一些堆栈答案。

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以在自定义简码功能中使用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文件中。经过测试和工作。


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

enter image description here