我需要在页面

时间:2016-10-22 14:47:35

标签: wordpress woocommerce

我需要将所有产品标签显示为主页上的下拉列表。我尝试了以下代码,但它没有用。

$terms = get_terms( 'product_tag' );
$term_array = array();
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
    foreach ( $terms as $term ) {
        $term_array[] = $term->name;
    }
}

它总是返回一个空数组。有什么建议?感谢。

3 个答案:

答案 0 :(得分:2)

我不确定dropdown的含义,但会使用<select>作为答案。

在你的functions.php中

function get_some_tags_man(){
    $terms = get_terms( array( 
        'hide_empty' => false, // only if you want to hide false
        'taxonomy' => 'product_tag',
     ) 
    );
    $html = '';
    if($terms){
        $html .= '<select name="terms" id="someID">';
        foreach($terms as $term){
            $html .= "<option name='$term->name'>$term->name</option>";
        }
        $html .= '</select>';
    }
    return $html;
}

在主题文件中:

<?php echo get_some_tags_man(); ?>

答案 1 :(得分:0)

我刚刚尝试了代码(在产品页面和商店页面中)并且它有效。 主页是指商店页面?您进入网站时显示的第一页。 我使用的主题是StoreFront。 你能展示你正在使用的钩子吗?还是代码?看。这是我使用的完整代码。

    add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_product_loop_tags', 15 );
    function woocommerce_product_loop_tags() {
        global $post, $product;

        $tag_count = sizeof( get_the_terms( $post->ID, 'product_tag' ) );
        $idProducto=$product->id;
         $product->get_title();
        echo $product->get_tags( ', ', '<span class="tagged">' . _n( 'Tag:', 'Tags:', $tag_count, 'woocommerce' ) . ' ', '.</span>' );

        $terms = get_terms( 'product_tag' );
        $term_array = array();
        if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
                foreach ( $terms as $term ) {
                    echo " ".$term_array[] = $term->name;
             }
        }
}

enter image description here enter image description here

答案 2 :(得分:0)

试试这个,它也会显示空标签。

$terms = get_terms( array( 'taxonomy' => 'product_tag', 'hide_empty' => false ) );