#php #wordpress
#php #wordpress
Вопрос:
Я хотел бы иметь определенный разделитель после моих сообщений.
У меня есть 3 разделителя -> разделитель1, разделитель2, разделитель3
В принципе, я хотел бы, чтобы они выполнялись в цикле, поэтому после сообщения 1 я получаю разделитель1, сообщение 2-> разделитель2, сообщение 3-> разделитель3, сообщение 4 -> разделитель1 и т.д…
Это мой код:
<div class="post">
<div class="post-title">
<h2><a href="<?php the_permalink() ?>" rel="bookmark"
title="Permanent Link to <?php the_title_attribute(); ?>">
<?php the_title(); ?>
</a></h2>
</div>
<div class="post-date">
<?php the_time('j-n-Y') ?><br/>
</div>
<div class="entry">
<?php the_excerpt();?>
</div>
<div class="meta">
<span class="post-cat"><?php the_category(',') ?></span>
<span class="post-comments"> <?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?></span>
</div>
<div class="divider1"></div>
</div>
итак, класс должен выполнять цикл от разделителя 1 к разделителю 2, от разделителя 3 к разделителю 1 и продолжать цикл, кто-нибудь может мне помочь?
Ответ №1:
Создайте счетчик и проверьте его модуль с циклом от 1 до 3 (на самом деле мы будем использовать от 0 до 2)
// Start counter at 0
$counter = 0;
// This is your loop
foreach ($posts as $post) {
// Now a switch will determine which divider to use.
// We'll select class divider1 divider2 or divider3 based
// on the current counter position. This will keep looping no
// matter how many posts you have
switch ($counter % 3) {
case 0: // output divider 1
$divider_class = 'divider1';
break;
case 1: // output divider 2
$divider_class = 'divider2';
break;
case 2: // output divider 3
$divider_class = 'divider3';
break;
}
// All your HTML is output here...
// Skipping most of it for brevity, but the important part is the divider...
<div class="<?php echo $divider_class;?>"></div>
// EDIT Forgot the important step of incrementing the counter...
$counter ;
// Don't forget to close your loop
}
Есть другие способы, которыми вы могли бы это сделать. Например, без переключателя вы можете установить класс разделителя непосредственно с помощью модуля:
// Alternate method - no switch and less typing but less flexible
$divider_class = "divider" . ($counter % 3);
<div class="<?php echo $divider_class;?>">