Как вывести атрибуты продукта WooCommerce как <UL>? - PullRequest
0 голосов
/ 27 сентября 2018

Я использую 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 голосов
/ 27 сентября 2018

здесь вы идете

<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> до <p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...