如何将WooCommerce产品属性输出为<ul>?

时间:2018-09-27 15:58:48

标签: woocommerce attributes

我将Woocommerce用于Wordpress,并尝试更改产品属性的显示方式(product-attribute.php)。如您所见,这些值以td格式输出,每个项目用逗号分隔,但是我需要将它们放在无序列表中,而每个项目都放在一个单独的li中。 您能帮我吗?

<?php foreach ( $attributes as $attribute ) :

    if ( empty( $attribute['is_visible'] ) || ( $attribute['is_taxonomy'] && ! taxonomy_exists( $attribute['name'] ) ) )
    continue;
?>  
<tr>
    <th scope="row"><?php echo wc_attribute_label( $attribute->get_name() ); ?></th>
    <?php
        if ( $attribute['is_taxonomy'] ) {

            $values = woocommerce_get_product_terms( $product->id, $attribute['name'], 'names' );
            foreach ( $values as $value ) :
                echo '<td>'; 
                echo $value;
                echo '</td>';
            endforeach;
        } else {

            $values = array_map( 'trim', explode( '|', $attribute['value'] ) );
            foreach ( $values as $value ) :
                echo '<td>'; 
                echo $value;
                echo '</td>';
            endforeach;
        }
    ?>
</tr>
<?php endforeach; ?>

现在我有

<td>item1, item2, item3</td>

但理想情况下,我需要的是

<li>item1</li>
<li>item2</li>
<li>item3</li>

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您去哪里

<ul>
<?php foreach ( $attributes as $attribute ) :

    if ( empty( $attribute['is_visible'] ) || ( $attribute['is_taxonomy'] && ! taxonomy_exists( $attribute['name'] ) ) ) {
        continue;
    }
    ?>  

    <p><?php echo wc_attribute_label( $attribute->get_name() ); ?></p>
    <?php
    if ( $attribute['is_taxonomy'] ) {

        $values = woocommerce_get_product_terms( $product->id, $attribute['name'], 'names' );
        foreach ( $values as $value ) :
            echo '<li>';
            echo $value;
            echo '</li>';
        endforeach;
    } else {

        $values = array_map( 'trim', explode( '|', $attribute['value'] ) );
        foreach ( $values as $value ) :
            echo '<li>';
            echo $value;
            echo '</li>';
        endforeach;
    }
    ?>

<?php endforeach; ?>
</ul>

我只是将您代码中的<td>替换为<li>,并添加了<ul>而不是<tr>,我也将<th>修改为{{1} }