Intereting Posts
Шаблон настраиваемого rss-канала. Получайте графические изображения и настраиваемые поля. проблема с получением звукового URL-адреса Редактирование информации нижнего колонтитула Таймер загрузки страницы? Добавить продукты в Woocommerce через WP API аутентифицировать пользователя без перенаправления Как установить файл .MO (языковой файл) для использования в качестве части темы? Как я могу прикреплять средства массовой информации от публикации? Дублирование полной версии WordPress для разработки, а затем перераспределения? Создание и редактирование сообщений с передней стороны Как отлаживать тему (тема вызывает страницы не имеют стиля или HTML <head>) Добавление дополнительных данных в объект WP_Post Сохранять последние посещенные блоги в сети в целом Нужна помощь в понимании / кодировании с помощью API настроек Замените виджеты панели инструментов баннерным объявлением

Показывать миниатюру только на первом месте в цикле?

Каков наилучший способ использования <?php the_post_thumbnail();?> В моем цикле, но показывать только эскиз в FIRST-сообщении? Значит, только первое сообщение в цикле отобразит это изображение?

Вот пример цикла, который показывает изображение для ВСЕХ сообщений:

 <!-- Start the Loop. --> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <!-- Display the Title as a link to the Post's permalink. --> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <!-- Display the posts Image thumbnail for the post --> <?php the_post_thumbnail();?> <!-- Display the date and a link to other posts by this posts author. --> <small><?php the_time('F jS, Y') ?> by <?php the_author_posts_link() ?></small> <!-- Display the Post's Content in a div box. --> <div class="entry"> <?php the_content(); ?> </div> 

Спасибо!

Solutions Collecting From Web of "Показывать миниатюру только на первом месте в цикле?"

  • добавьте переменную перед циклом (до момента while), например $ first = true;
  • добавьте проверку внутри цикла для этой переменной
  • после использования изменить флаг

Код:

 <!-- Start the Loop. --> <?php $first = true; ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <!-- Display the Title as a link to the Post's permalink. --> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <!-- Display the posts Image thumbnail for the post --> <?php if ( $first ): ?> <?php the_post_thumbnail();?> <?php $first = false; ?> <?php endif; ?> <!-- Display the date and a link to other posts by this posts author. --> <small><?php the_time('F jS, Y') ?> by <?php the_author_posts_link() ?></small> <!-- Display the Post's Content in a div box. --> <div class="entry"> <?php the_content(); ?> </div> 

Этот код в вашем шаблоне отобразит миниатюру сообщения только для первого сообщения:

 <?php ! isset ( $loop_first ) and the_post_thumbnail(); $loop_first = 1; ?> 

Это то, что я использую в своих проектах, и это хорошо работает для меня. Я изменил код, который вам предоставил. Просто запустите его, и он отобразит миниатюру сообщения только для первого сообщения.

 <!-- Start the Loop. --> <?php $i = 1 ; ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <!-- Display the Title as a link to the Post's permalink. --> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <?php if ($i == 1): ?> <!-- Display the posts Image thumbnail for the post --> <?php the_post_thumbnail();?> <?php endif; ?> <!-- Display the date and a link to other posts by this posts author. --> <small><?php the_time('F jS, Y') ?> by <?php the_author_posts_link() ?></small> <!-- Display the Post's Content in a div box. --> <div class="entry"> <?php the_content(); ?> </div> <?php $i++; endwhile; endif; ?> 

Просто проверьте значение current_post

 global $wp_query; // get the global query - works in custom queries too if(0 == $wp_query->current_post){ /**is the first post**/ }