Intereting Posts
Помощь с .htaccess и входом с подпапками разрешить пользователю выбирать страницы из раскрывающегося списка в моем плагине Отображать пользовательскую мета-запись текущего пользователя в боковой панели ajax-запрос не возвращает результат Сообщения из всех категорий отображаются вместо определенной категории Скрипт очереди после инициализации TinyMCE Что такое пользовательские сообщения типа «Журналы» WordPress? Изменить страницу WP-Login с помощью Javascript? Как мы можем получить «get_post_meta» конкретного пользователя, который добавил его альтернатива wp_link_pages (), которая показывает только ссылку на последнюю страницу как получить сообщения по настраиваемому типу сообщений, а затем отобразить пользовательские поля? Как добавить и очистить пользовательские типы сообщений и таксономии в плагине? Рассмотрение существующих данных Получить сообщение из категории по приоритету Предельная стоимость woocommerce line_total десятичная длина Обновление базы данных WordPress с 2,6 до 3,2

Как стилизовать первый пост по-разному с помощью 'get_template_part'?

Мне нужна помощь в стилизации первого сообщения иначе, чем в остальных. Что делает это по-другому, так это то, что я использую эту get_template_part для бесконечного прокрутки для работы на моем сайте.

Это то, что я использую для index.php

<?php while (have_posts()) : the_post(); get_template_part( 'content', get_post_format() ); endwhile; ?> 

который загрузит цикл из content.php. Это был мой старый цикл:

 <?php if (have_posts()) : ?> <?php $post = $posts[0]; $c=0;?> <?php while (have_posts()) : the_post(); ?> <?php $c++; if( !$paged && $c == 1) :?> <-! first post --> <?php else :?> <-! the rest --> <?php endif;?> <?php endwhile; ?> <?php endif; ?> 

Спасибо за помощь.

Solutions Collecting From Web of "Как стилизовать первый пост по-разному с помощью 'get_template_part'?"

Если вы используете post_class() в своем шаблоне content например …

 <div <?php post_class(); ?>> 

… вы можете отфильтровать и добавить специальный класс:

 add_filter( 'post_class', 'mark_first_post' ); function mark_first_post( $classes ) { remove_filter( current_filter(), __FUNCTION__ ); $classes[] = 'first-post'; return $classes; } 

У вашего первого сообщения в цикле теперь будет first-post класс. Самое приятное: этот фильтр будет запускаться только один раз и затем деактивировать себя.

Вы также можете использовать другую вспомогательную функцию:

 function is_first_post() { static $called = FALSE; if ( ! $called ) { $called = TRUE; return TRUE; } return FALSE; } 

Вы можете проверить первый пост, затем в своем шаблоне:

 if ( is_first_post() ) { // render the first post } else { // the other posts } 

Получил это, чтобы работать!

 <?php if ( 1 > get_query_var( 'paged' ) ) { ?> <?php if ( is_first_post() ) { ?> first! <br /> <?php the_title();?> <?php the_excerpt();?> <?php } else { ?> <?php the_title();?> <?php the_excerpt();?> <?php } ?> <?php } else { ?> <?php the_title(); ?> <?php the_excerpt();?> <?php } ?> 

Вы можете увидеть это в действии – http://openbayou.staging.wpengine.com

Следующий вопрос, который у меня есть (та же тема), можно ли его очистить, чтобы сделать его просто так, как код внизу is_first_page дублирует

 <?php } else { ?> <?php the_title();?> <?php the_excerpt();?> <?php } ?> <?php } else { ?> <?php the_title(); ?> <?php the_excerpt();?> <?php } ?> 

Большое вам спасибо за помощь!