@skdon

Почему пагинация не работает Wordpress?

День добрый!
Нужна помощь гуру Wordpress.
Имеется код
<?php while ( have_posts() ) : the_post();
		$paged_string = is_home() || is_front_page() ? 'page' : 'paged';
		$paged = get_query_var( $paged_string ) ? get_query_var( $paged_string ) : 1;

		$args = array(
			'paged' => $paged,
			'post_type' => 'post'
		);
		$all_posts = new WP_Query( $args );

		$style = get_post_meta( $post->ID, 'krown_blog_style', true );

		while ( $all_posts->have_posts() ) : $all_posts->the_post();

			if ( $style == 'blog-standard-author' ) {
				get_template_part( 'content-author' );
			} else {
				get_template_part( 'content' );
			}
		endwhile;
		wp_pagenavi();
	endwhile; ?>

Установлен плагин пагинации. Пагинация появляется, но при переключении страниц вижу одни и теже записи. Знаю, что решение элементарное, но пока слабовато разбираюсь в движке. Нужна помощь.
  • Вопрос задан
  • 949 просмотров
Пригласить эксперта
Ответы на вопрос 2
Punkie
@Punkie
Замените
wp_pagenavi();
на
the_posts_pagination();

Если так же будет, то вот это добавьте в functions.php (в конец):
add_action('template_redirect', function() {
  if ( is_home() || is_front_page() ) {
    global $wp_query;
    $page = (int) $wp_query->get('page');
    if ( $page > 1 ) {
      // convert 'page' to 'paged'
      $query->set( 'page', 1 );
      $query->set( 'paged', $page );
    }
    // prevent redirect
    remove_action( 'template_redirect', 'redirect_canonical' ); // убиваем редирект от /page/2
  }
}, 0 );
Ответ написан
Комментировать
link_web
@link_web
Magento, Laravel, Zend, Shopify, Prestashop, WP
Для Вас это должно подойти:
<?php while ( have_posts() ) : the_post();
    $paged_string = is_home() || is_front_page() ? 'page' : 'paged';
    $paged = get_query_var( $paged_string ) ? get_query_var( $paged_string ) : 1;

    $args = array(
      'paged' => $paged,
      'post_type' => 'post'
    );
    $all_posts = new WP_Query( $args );

    $style = get_post_meta( $post->ID, 'krown_blog_style', true );

    while ( $all_posts->have_posts() ) : $all_posts->the_post();

      if ( $style == 'blog-standard-author' ) {
        get_template_part( 'content-author' );
      } else {
        get_template_part( 'content' );
      }
    endwhile;
    wp_pagenavi( array( 'query' => $all_posts ) );
<?php wp_reset_postdata(); ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы