специфичный разделитель после сообщений

#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;?>">