Цикл добавить последний класс в последний элемент цикла - PullRequest
1 голос
/ 30 июня 2011

Я использую wordpress и использую следующее, чтобы получить последние 3 последних сообщения:

    <?php query_posts('showposts='.$latest_num.'&cat=-'.$featured_cat.','.$latest_ignore.''); ?>
    <?php while (have_posts()) : the_post(); ?>
    <li>
        <div class="imgholder">
            <a href="/wp-content/themes/twentyten/images/slide1.jpg" data-gal="prettyPhoto[featured]" title="<?php the_title(); ?>">
                <img src="<?php echo get_post_meta($post->ID, 'thumbnail',true) ?>" width="275" height="145" alt="Post Image" class="postimg-s" />
            </a>
        </div>
        <h4><?php the_title(); ?></h4>
        <p><?php the_content('Read more...'); ?></p>
    </li>
    <?php endwhile; ?>

Я хочу добавить класс с именем 'last' к элементу <li> 3-гоИнтеграция через цикл.

Кто-нибудь есть идеи, как я мог бы добавить это?

Ответы [ 3 ]

3 голосов
/ 30 июня 2011

Заменить строку

<li>

с

<li <?php print have_posts() ? '' : ' class="last"' ?>>

have_posts() просто звонит в $wp_query->have_posts(), который проверяет счетчик цикла, чтобы увидеть, есть ли сообщения, оставленные в массиве сообщений ( источник )

3 голосов
/ 30 июня 2011

Настройка счетчика вне вашего цикла while

$count = 1;

Проверьте модуль этого счетчика и, если требуется, выведите класс

<li <?php if(!$count % 3) echo 'class="last"; ?>>

Увеличьте счетчик до закрытия цикла:

    $count++;
}

Или, применительно к вашему коду:

<?php 
    $count = 1;
    while (have_posts()) : the_post(); 
?>
<li <?php if(!$count % 3) echo 'class="last"; ?>>
    <div class="imgholder">
        <a href="/wp-content/themes/twentyten/images/slide1.jpg" data-gal="prettyPhoto[featured]" title="<?php the_title(); ?>">
            <img src="<?php echo get_post_meta($post->ID, 'thumbnail',true) ?>" width="275" height="145" alt="Post Image" class="postimg-s" />
        </a>
    </div>
    <h4><?php the_title(); ?></h4>
    <p><?php the_content('Read more...'); ?></p>
</li>
<?php
    $count++; 
    endwhile; 
?>

Противоинтуитивный взгляд условия модуля состоит в том, что всякий раз, когда счетчик делится ровно на 3, он возвращает 0.

0 голосов
/ 30 июня 2011

Ли должен быть li

<li <?php $iCounterLi++; ($iCounterLi==3)?'class="last"':''; ?>>

Не забудьте инициализировать $ iCounterLi перед циклом

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