WordPress pagination fix voor custom queries

Als je een custom query gebruikt om WordPress posts te tonen loop je tegen het probleem aan dat de paginatie niet klopt (via bijvoorbeeld de the_posts_pagination() functie). De WordPress paginatie is namelijk gebaseerd op het hoofd query object (opgeslagen in $wp_query) en niet op jouw custom query object. Om dit probleem te tackelen kun je de volgende hack gebruiken:

// jouw custom query
$the_query = new WP_Query( $args );

// Pagination fix
$temp_query = $wp_query;
$wp_query   = NULL;
$wp_query   = $the_query;

if( $the_query->have_posts() ):

// Hier komt de loop, gevolgd door the_posts_pagination();

// Reset hoofd query object
$wp_query = NULL;
$wp_query = $temp_query;

Op deze manier sla je voordat je de loop begint het hoofd query object op in een tijdelijke variabele. Daarna vervang je het hoofd query object door jouw object. En uiteindelijk reset je het hoofd query object weer. Via deze manier krijg je de paginatie kloppend!

Scroll to top