Массив заголовков Wordpress - PullRequest
       9

Массив заголовков Wordpress

0 голосов
/ 05 февраля 2012

Я пытаюсь написать функцию, которая будет выводить все остальные заголовки вложений и форматировать каждое из них в div, содержащем последовательные идентификаторы. Однако каждый раз, когда я добавляю echo и echo до и после post_excerpt, мой код полностью ломается. Основываясь на моем выводе HTML, первое эхо, кажется, игнорируется до второго раза в цикле. Субтитры кажутся хорошими, если я выну код div echo.

             <?php while ( have_posts() ) : the_post(); ?>
             <?php
                $argsThumb = array(
                    'orderby' => 'menu_order',
                    'order' => 'ASC',
                    'post_type' => 'attachment',
                    'post_status' => null,
                    'post_parent' => $post->ID,
                    'include'  => $thumb_id
                );
               $thumb_images = get_posts($argsThumb);
               $currentThumb = 1;
               $captionID=1;
               foreach ($thumb_images as $thumb_image) {
                   if ($currentThumb % 2 == 0)
                        echo '<div class="caption'.$captionID++.'">';
                        echo $thumb_image->post_excerpt;
                        echo '</div>';
                        $currentThumb++;
               }
            ?>
           <?php endwhile; // end of the loop. ?>

Вот мой HTML-вывод, теоретически должно быть 5 подписей на основе того факта, что у меня есть 10 изображений, и код должен вытягивать все остальные заголовки изображений:

    <div class="caption1"></div>
    BEFORE 3</div>
    <div class="caption2">CLIENT: ELYSIAN<br>AGENCY: IN HOUSE<br>PHOTOG: JEFF SCIORTINO<br><br><p>THIS IMAGE WAS PART OF A SERIES SHOT FOR THE ELYSIAN. I WAS APPROACHED TO ADD ELEMENTS THAT WERE NOT POSSIBLE TO CAPTURE IN CAMERA.</p></div>
    AFTER 2.</div>
    <div class="caption3">BEFORE 1</div>

1 Ответ

1 голос
/ 05 февраля 2012

Похоже, одна проблема может заключаться в том, что вы забыли обернуть блок if в фигурные скобки.

Прямо сейчас у вас есть следующее:

foreach ($thumb_images as $thumb_image) {
    if ($currentThumb % 2 == 0) {
         echo '<div class="caption'.$captionID++.'">';
    }

    echo $thumb_image->post_excerpt;
    echo '</div>';
    $currentThumb++;
}

Итак, вы можете захотеть, чтобы это выглядело так: intead:

foreach ($thumb_images as $thumb_image) {
    if ($currentThumb % 2 == 0) {
         echo '<div class="caption'.$captionID++.'">';
         echo $thumb_image->post_excerpt;
         echo '</div>';
         $currentThumb++;
    }
}

Эта ошибка действительно является хорошей причиной, чтобы всегда включать фигурные скобки, даже для однострочных блоков if.Однако я не думаю, что это полностью решит вашу проблему.Я предлагаю вам еще раз взглянуть на свои данные, поскольку вы видите, что echo '</div>'; происходит пять раз.Я предполагаю, что цикл foreach ($thumb_images as $thumb_image) имеет только пять вложений для захвата.

...