Для начала определить критерий, по которому посты станут популярными. Например количество просмотров.
А дальше обычный цикл, в аргументах которого есть meta_key из функции подсчета просмотров post_views_count и соответственно сортировка по значению этого ключа meta_value_num.
$popularLoop = new WP_Query(array(
'posts_per_page' => 5,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'post_type' => 'post',
'order' => 'DESC',
'date_query' => array(
array(
'after' => '-15 days',
)
)
));
if ( $popularLoop->have_posts() ) : ?>
<h2 class="sidebar-title"><?php _e('Найбільше читають', 'viche') ?></h2>
<?php while ( $popularLoop->have_posts() ) : $popularLoop->the_post(); ?>
<a href="<?php the_permalink() ?>">
<div class="news-popular-block">
<div class="img-wrapper">
<?php if (has_post_thumbnail()) {
the_post_thumbnail('popular-thumb');
}?>
</div>
<div class="news-popular-text">
<h3 class="news-popular-title"><?php trim_title_words(10, '...'); ?></h3>
<div class="news-block-info-item news-block-date">
<?php _e('Переглядів:', 'viche') ?>
<?php echo getPostViews(get_the_ID()); ?>
</div>
</div>
</div>
</a>
<?php endwhile;?>
</div>
<?php endif; wp_reset_query(); ?>