простой счетчик php - PullRequest
       5

простой счетчик php

4 голосов
/ 21 сентября 2010

Я работаю над wordpress query_posts.Я хочу показать 12 постов на главной странице, 3 пункта подряд.Поэтому я хочу иметь CSS «clear: both» для первого элемента каждой строки.Как я могу это сделать, пожалуйста?

<?php query_posts(array(&#039;showposts&#039; => 9, &#039;post_parent&#039; => $post->ID, &#039;post_type&#039; => &#039;page&#039;, &#039;order&#039; => &#039;ASC&#039;)); ?>
<div>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <div> <!-- clear class on each 4th item -->
            <h2><?php the_title(); ?></h2>
            <?php the_content(); ?>
        </div>
    <?php endif; ?>
</div>
<?php wp_reset_query(); ?>

Ответы [ 2 ]

4 голосов
/ 21 сентября 2010
<?php query_posts(array('showposts' => 9, 'post_parent' => $post->ID, 'post_type' => 'page', 'order' => 'ASC')); ?>
<div>
    <?php $i = 0; $attr = " class='clear_float'"; ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <div<?php if(($i++)%3 == 0) {echo $attr;} ?>> <!-- clear class on each 4th item -->
            <h2><?php the_title(); ?></h2>
            <?php the_content(); ?>
        </div>
    <?php endif; ?>
</div>
<?php wp_reset_query(); ?>

Я добавил 2 строки.

<?php $i = 0; $attr = " class='clear_float'"; ?>

и

<div<?php if(($i++)%3 == 0) {echo $attr;} ?>> <!-- clear class on each 4th item -->

===== ОБНОВЛЕНО =====

Чтобы добавить третий класс предметов, я бы предложил добавить класс ко всем предметам, для простоты и еще большего контроля

Для этого перед циклом:

$i = 0;

Внутри div в цикле:

<div class="item-<?php echo (($i++) % 3) + 1 ?>">

Таким образом, для каждой строки первый элемент имеет класс = item-1, третий элемент имеет класс = item-3

2 голосов
/ 21 сентября 2010
<?php
    $counter = 0;
    if (have_posts() ....): the_post(); ?
        $class = ((++$counter % 3) == 0) ? ' class="clearme"': '';
?>
    <div<?php echo $class ?>> <!-- clear.... -->
         ...

Инициализируйте ваш счетчик равным нулю. Увеличьте его на единицу, разделите на 3 и проверьте, равен ли остаток 0 (подразумевается, что он кратен 3), и в этом случае вы устанавливаете свой класс / стиль очистки. В менее кратком коде:

    $counter = $counter + 1;
    if ($counter > 3) {
        $counter = 0;
    }

    $remainder = (int)($counter / 3)
    if ($remainder == 1) {
         // will be 1 when $counter is 3
         $class = ' class="clearme"';
    } else {
         $class = '';
    }
...