0

<div class="row">で設定した数のアイテムを追加する必要があり$woocommerce_loop['columns']ます。次のような出力が必要です。

<div class="row">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</div>
<div class="row">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</div>

私が現在持っているのは、4番目のリスト項目ごとにdivをラップすることだけです。

<?php
    // Store loop count we're currently on
    if ( empty( $woocommerce_loop['loop'] ) )
        $woocommerce_loop['loop'] = 0;

    // Store column count for displaying the grid
    if ( empty( $woocommerce_loop['columns'] ) )
        $woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 );

    // Ensure visibility
    if ( ! $product->is_visible() )
        return;

    // Increase loop count
    $woocommerce_loop['loop']++;

    if ( $woocommerce_loop['loop'] % $woocommerce_loop['columns'] == 0) {
        echo '<div class="row">';
    }
?>

<li>
    <?php do_action( 'woocommerce_before_shop_loop_item' ); ?>
    <a style="position: relative;display: block;" href="<?php the_permalink(); ?>">
        <?php
            /**
             * woocommerce_before_shop_loop_item_title hook
             *
             * @hooked woocommerce_show_product_loop_sale_flash - 10
             * @hooked woocommerce_template_loop_product_thumbnail - 10
             */
            do_action( 'woocommerce_before_shop_loop_item_title' );
        ?>
        <?php
            /**
             * woocommerce_after_shop_loop_item_title hook
             *
             * @hooked woocommerce_template_loop_price - 10
             */
            do_action( 'woocommerce_after_shop_loop_item_title' );
        ?>
    </a>
    <a href="<?php the_permalink(); ?>">
            <h3><?php the_title(); ?></h3>
    </a>
    <?php do_action( 'woocommerce_after_shop_loop_item' ); ?>
</li>
<?php 
    if ( $woocommerce_loop['loop'] % $woocommerce_loop['columns'] == 0) {
        echo '</div>';
    }
?>

これは、ループがどこにあるのか疑問に思っている場合に備えて、ループ内で呼び出されるテンプレートです。

4

2 に答える 2

2

コードを次のように変更します

if ( $woocommerce_loop['loop'] % $woocommerce_loop['columns'] == 1) {
    echo '<div class="row">';
}

...

if ( $woocommerce_loop['loop'] % $woocommerce_loop['columns'] == 0) {
    echo '</div>';
}

このように、1日に開き、4日に閉じます。

于 2013-11-11T04:32:28.157 に答える
1

最も簡単な答えは、変数を使用して反復回数を追跡し、mod 4 = 0 の場合に追加することです...

$count = 0;
if($count % $numOfRows == 0 || $count == 0)
{
    if($count % $numOfRows == 0)
         echo "</div>"
    if($count != count($arrayYourLoopingThrough) -1)
        echo "<div class='row'>";
}

elseif($count == count($arrayYourLoopingThrough) -1)
    echo "</div>";

クラスで div の代わりにリストを使用した方がおそらく良いでしょうが、これはあなたが要求したことを行うはずです。

于 2013-11-11T04:19:43.337 に答える