Как закрепить посты на главной странице WordPress
WordPress предоставляет механизм для закрепления нужных постов/записей на главной странице.
В админке, виджет "Опубликовать" на панели редактирования: Видимость » Открыто » Закрепить на главной
Закрепленные посты будут выводится первыми:
- На главной странице
- В дополнительных запросах через WP_Query
На страницах рубрик, подкатегорий, тегах закрепленные посты игнорируются.
Получить список закрепленных постов:
$stickyPostsIds = get_option('sticky_posts'); // array
$sliseStickyPostsIds = array_slice($stickyPostsIds, 0, 3); // 3 закрепленных поста
$queryArgs = array(
'posts_per_page' => -1,
'post__in' => $stickyPostsIds
);
$query = new WP_Query($queryArgs);
while ($q->have_posts()) {
$q->the_post();
// ... your code
}
wp_reset_postdata();
Вы можете отключить приоритезацию закрепленных постов:
add_action('pre_get_posts', function($query) {
if (!is_admin() && $query->is_main_query()) {
$query->set('ignore_sticky_posts', true);
}
});
Чтобы визуально выделить закрепленные посты на главной странице используйте ф-цию post_class()
, которая добавляет класс sticky
. Только на главной!
#wordpress sticky posts, #прилепленные записи, #прикрепленные посты