0

私はそれが少し簡単であることを知っていますが、wordpresswhileループの問題を解決することはできません。私はzurbフレームワークを使用しており、製品リストには以下のhtml構造を使用しています。

<div class="row">
    <div class="four columns">
        item here
    </div>
    <div class="four columns">
        item here
    </div>
    <div class="four columns">
        item here
    </div>
</div>

したがって、whileループでは、3つの4列のdivごとに構造全体を繰り返したいと思います。私は以下のコードで試しました

    <?php
        $temp = $wp_query;
        $wp_query = null;
        $wp_query = new WP_Query();
        $wp_query->query('post_type=product' . '&paged=' . $paged .'');
    ?>

    <?php $counter = 0;

    if ( have_posts() ) : while ( have_posts() ) : the_post();
        if ($counter % 3 == 0):
        echo '<div class="row"><!--row starts here-->';
        endif; ?>

        <div class="four columns">
            <article>

                <header>
                    <hgroup>
                        <h2><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'foundation' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
                        <h6>Written by <?php the_author_link(); ?> on <?php the_time(get_option('date_format')); ?></h6>
                    </hgroup>
                </header>

                <?php if ( has_post_thumbnail()) : ?>
                <a href="<?php the_permalink(); ?>" class="th" title="<?php the_title_attribute(); ?>" ><?php the_post_thumbnail(); ?></a>
                <?php endif; ?>

                <?php the_excerpt(); ?>

            </article>

        </div>

        <?php endwhile; ?>

    <?php else : ?>

        <h2><?php _e('No posts.', 'foundation' ); ?></h2>
        <p class="lead"><?php _e('Sorry about this, I couldn\'t seem to find what you were looking for.', 'foundation' ); ?></p>

    <?php endif;

    if ($counter % 3 == 0):
        echo '</div><!--row end here-->';
    endif; ?>

    <?php foundation_pagination(); ?>

</div>
<!-- End Main Content -->

しかし、それは間違って、すべてのループで繰り返されています。これを繰り返すのは明らかですが、3つの4列だけで繰り返す方法が見つからず、最初のループ行にdivを挿入する必要があるという解決策もあります。

どうもありがとう

4

2 に答える 2

3

Andyが言ったことを正確に実行$counter++;し、whileループ内のコードにコードを追加します。

たとえば、コードでは次のようになります。

</div>
<?php $counter++; ?>
<?php endwhile; ?>

これは、例の2つの既存の行の間に配置する場所を示しています。

于 2013-03-08T01:25:15.460 に答える
0

おそらく、のよう$counter++にループ内のカウンターに1つ追加してから、この質問を閉じてください。

于 2012-11-26T07:42:50.153 に答える