Wordpress - paginacja w pętli

0

Witam,
mam problem z paginacją w Wordpressie. Wszystko się wyświetla poprawnie, w url wyskakuje np. /page/2 a w paginacji zostaje dalej klasa current na 1 i posty wyświetlane są wciąż te same.

Mój kod:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

query_posts('posts_per_page=3&offset=1&paged=' . $paged);
				if ( have_posts() ) : while ( have_posts() ) : the_post();
				?><article class="article-content">
					<h7 class="author">Autor: <a href="<?php  the_author_link(); ?>"><?php the_author(); ?></a></h7>
					<h3><?php the_title(); ?></h3>
					<p><?php the_content(''bla bla bla);  ?></p>
					<h7 class="categorie">Kategoria: <?php the_category(''); ?></h7>
					<h7 class="tags">Tagi: <?php the_tags( '', ', ', '' ); ?></h7>				
					</article>
<?php endwhile; ?>
				<?php
global $wp_query;

$big = 999999999; 

echo paginate_links( array(
	'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
	'format' => '?paged=%#%',
	'current' => max( 1, get_query_var('paged') ),
	'total' => $wp_query->max_num_pages
) );
?>
<?php else : ?>
					<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
				<?php endif; ?>

0

klej do function.php

 

    global $wp_query;
    
    if ($wp_query->max_num_pages > 1) { echo '<p class="pages" role="navigation">' . paginate_links( array(
        'base' => @add_query_arg('paged','%#%'),
        'format' => '?paged=%#%',
        'current' => max( 1, get_query_var('paged') ),
        'total' => $wp_query->max_num_pages,
        'prev_text' => __('« '),
        'next_text'    => __(' »'),
    ) ) . '</p>'; }
}

a potem w miejscu gdzie chcesz efekt

<?php pagination();

0

Ale to nie jest odpowiedź na moje pytanie, funkcję mam, tylko wrzuciłem tutaj jako całość. Paginacja nie działa, wyświetla się, ale pokazuję wciąż te same posty i mimo że w url mam /page/2 to aktywne jest na 1.

0

Miałam podobną sytuację. Problem nie jest w samej paginacji. U mnie wyglądała tak i nie zmieniałam jej:

function pagination() { global $wp_query; if ($wp_query->max_num_pages > 1) { echo '

' . paginate_links( array( 'base' => @add_query_arg('paged','%#%'), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages, 'prev_text' => __('« '), 'next_text' => __(' »'), ) ) . '

'; } } -------------------------------------------------------------- Problem polegał na złym kodzie dodawania wpisów. Poprawny powinien wyglądać tak: <?php query_posts( array( 'posts_per_page' => 10, 'cat' => 39, 'paged' => get_query_var('paged') ) ); ?> <?php if (have_posts()): ?> <?php while (have_posts()) : the_post(); ?> tu content i dalej <?php endwhile; ?> <?php endif; ?> <?php pagination() ?> -------------------------------------------------------------- Trzeba przy tym pamiętać, by w ustawieniach WP admin Czytanie ustawić na 10 wpisów zgodnie z posts_per_page' => 10 lub ile kto chce i oczywiście wpisać zamiast 39 w 'cat' => 39, ID swojej kategorii.
0

Warto też dodać po paginacji <?php wp_reset_query(); ?>

1 użytkowników online, w tym zalogowanych: 0, gości: 1