Как закрепить посты на главной странице WordPress

Категория: WordPress

WordPress предоставляет механизм для закрепления нужных постов/записей на главной странице.

В админке, виджет "Опубликовать" на панели редактирования: Видимость » Открыто » Закрепить на главной

Закрепленные посты будут выводится первыми:

  1. На главной странице
  2. В дополнительных запросах через 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, #прилепленные записи, #прикрепленные посты

категория: WordPress