@sergiocharm

Архив популярных статей?

Пытаюсь сделать архив популярных статей по просмотрам.

Как из этого сделать постраничный архив?
пока выводится 1 страница с 30 статьями
<?php $args = array('meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' );
			query_posts($args); while ( have_posts() ) : the_post(); ?>
				<div class="post home" itemscope itemtype="https://schema.org/BlogPosting">
					<?php get_template_part ('content');?>							
				</div>	
				<?php endwhile; wp_reset_query(); ?>
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
mihdan
@mihdan
WordPress-евангелист, ведущий РНР - разработчик
the_posts_pagination() работает только с главным циклом WordPress. На странице у вас, скорее всего, свой цикл ( WP_Query() или get_posts() ). Это и является источником проблемы. Обойти эту проблему можно только таким хаком (выдержка из рабочего кода):

global $post, $wp_query;

$query_args = array(
    'post_status' => 'publish',
    // и прочее...
);

$query = new WP_Query( $query_args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        // вывод поста
    }

    wp_reset_postdata();

    $temp_query = $wp_query;
    $wp_query   = null;
    $wp_query   = $query;

    the_posts_pagination();

    // Reset main query object.
    $wp_query = null;
    $wp_query = $temp_query;
}


Здесь перед вызовом the_posts_pagination() мы подменяем глобальную переменную главного цикла WordPress на наш цикл, а потом возвращаем назад.

Источник
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@vardoLP
Ват ю сэй эбаут май мама?!
@sergiocharm Автор вопроса
Сделал так, пока работает. Правильно или нет?
<?php $args = array('meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' );
			query_posts($args); if (have_posts()) : while ( have_posts() ) : the_post(); ?>
				<div class="post home" itemscope itemtype="https://schema.org/BlogPosting">
					<?php get_template_part ('content');?>							
				</div>	
				<?php endwhile; endif; ?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы