Убираем свойство прилепливания (Sticky Posts) записей из цикла

07.02.2019
TemplateMonster - лучшая коллекция шаблонов для CMS WordPress

Убираем свойство прилепливания записей из цикла.

Данный код игнорирует свойство прилепленности, выводя все записи в естественном порядке, прилепленные записи будут представлены в цикле, но отсортированы они будут наряду с обычными записями.

<?php
    $args = array( 'ignore_sticky_posts' => 1);
    $query = new WP_Query( $args );
    if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
?>

Полное исключение прилепленных записей из цикла

<?php
    $query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
    if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
?>

Выводим 3 прилепленных записи:

<?php 
// get 3 sticky posts
$args = array(
  'posts_per_page' => 3,
  'post__in'  => get_option( 'sticky_posts' ),
  'ignore_sticky_posts' => 1
);
$posts_query = new WP_Query($args);
// query
while ($posts_query->have_posts()) : $posts_query->the_post();
?>

  ...

<?php endwhile; wp_reset_postdata(); ?>

Выводим цикл, чтобы прилепленные записи были в общем потоке, и работала пагинация:

<?php
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array( 'ignore_sticky_posts' => 1, 'paged' => $paged);
$query = new WP_Query( $args );
if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();

  get_template_part( 'template-parts/content', get_post_format() );

  endwhile; wp_reset_postdata(); ?>

<?php else :

get_template_part( 'template-parts/content', 'none' );

endif; ?>
</div>
<?php the_posts_pagination( array(
  'mid_size' => 10,
  'prev_text' => __( '<', 'mabair' ),
  'next_text' => __( '>', 'mabair' ),
  ) ); ?>
</div>
TemplateMonster - лучшая коллекция шаблонов для CMS WordPress

Полезная инфа:

Оставить комментарий