Intereting Posts
Какой язык кодирования использовать? Пользовательская переписывающая ссылка не работает При разработке целых сайтов для клиентов, можно ли управлять версиями всего сайта? Shortcode – Получение категорий появляется поверх веб-сайта flush_rewrite_rules на save_post не работает при первом сохранении сообщения Как отобразить список, показывающий пользовательские типы сообщений, вложенные в таксономию? Попытка добавить cat_ID в массив для показа изображения для определенной категории get_option и список опций Частная почта, скрытая от администратора тоже Как следует реализовать add_settings_error на пользовательских страницах меню? wp_link_page – обернуть текущий элемент страницы Перенаправление на панель управления после входа в систему Как я могу получить список всех установленных сценариев и стилей? Как добавить стрелки навигации для ручного скольжения по сообщениям? Сортировка по имени – второй wp_query

Как стилизовать первый пост по-разному с помощью '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 } ?> 

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