В WordPress есть очень интересная фича, которая называется «Прилепленные записи». Когда вы делаете пост прилепленным, он отображается выше, чем ваши все новые записи, но только в том случае, если ваша тема поддерживает такую функцию. В этой статье мы покажем вам, как можно вывести последние прилепленные записи в любом месте вашей темы WordPress .
Предположим, что вы уже создали пользовательский шаблон страницы и/или уже есть в наличии The Loop, тогда вставляем следующий код перед циклом.
<?php /* Получаем все прилепленные записи */ $sticky = get_option( 'sticky_posts' ); /* Сортируем прилепленные записи таким образом, чтобы новая была всегда сверху*/ rsort( $sticky ); /* Получаем 5 последних прилепленных записей (изменяем 5 на нужное вам количество) */ $sticky = array_slice( $sticky, 0, 5 ); /* Запрашиваем прилепленные записи */ query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) ); ?>
Этот код очень полезно использовать в слайдере популярных записей, или с любой другой интересной фичей, которую вы собираетесь вывести себе на сайт. Этот сниппет в большинстве своем больше подойдет сайту на WordPress, который использует произвольную главную страницу или внешний вид в стиле журнала.
Отключение повышенного приоритета для прилепленных записей
В этом случае все записи будут выводиться как обычно, то есть с сортировкой по дате.
Делаем для главной страницы:
add_action( 'pre_get_posts', 'turn_off_sticky_on_homepage' ); function turn_off_sticky_on_homepage( $query ) { if ( !is_admin() && $query->is_main_query() ) { $query->set( 'ignore_sticky_posts', true ); } }
Делаем для только в дополнительных циклах внутри страниц:
add_action( 'pre_get_posts', 'turn_off_sticky_on_queries' ); function turn_off_sticky_on_queries( $query ) { if ( !is_admin() && !$query->is_main_query() ) { $query->set( 'ignore_sticky_posts', true ); } }
Делаем везде абсолютно:
add_action( 'pre_get_posts', 'turn_off_sticky' ); function turn_off_sticky( $query ) { $query->set( 'ignore_sticky_posts', true ); }
Благодарности за этот код уходят к Justin Tadlock и частично к Nathan Rice за разработку решения с массивом.