Intereting Posts
WP 3.5 и галереи – как считать изображения? Последние / Последние сообщения Flush_rewrite_rules не работает при обновлении настроек Возможно ли (или желательно) разрешить открытый доступ к новому настраивателю темы для потенциальных клиентов? Единый обратный вызов с несколькими полями настройки Могу ли я заблокировать пост в позиции, поэтому он всегда появляется на главной странице? Сохранение настраиваемых полей профиля Добавить информацию о профиле в Feed Категория pagination показывает те же записи Как хранить несколько входных значений с помощью той же meta_key Настройка только определенного меню с помощью «wp_nav_menu_items» Hook? get_the_term_list – Возвращает ссылки на edit.php вместо ссылки на шаблон архива таксономии Как показать последнее сообщение в блоге, а не раньше Как установить разбивку на страницы для работы с '/ page /'? Как я могу программно принудительно настраивать постоянные ссылки с помощью моей темы?

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

Каков наилучший способ использования <?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**/ }