Anteriormente he mostrado cómo configurar un tipo de post personalizado en wordpress. A menudo tenemos problemas para conseguir que el paginador funcione.Pues cuando creamos un template para visualizar este tipo de posts debemos llamar a la query de esta forma:

<?php
// Número de posts que debemos cargar
$display_count = get_option('posts_per_page');
 
// Página actual
$page = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
 
// Calcular offset
$offset = ( $page - 1 ) * $display_count;
 
// Argumentos de WP_Query
$query_args = array(
  'post_type' =>  'custom-post', // Nuestro tipo de post personalizado
  'orderby'   =>  'date',
  'order'     =>  'desc',
  'number'    =>  $display_count,
  'page'      =>  $page,
  'offset'    =>  $offset,
);
 
query_posts( $query_args );
?>

Si quisiésemos añadir un filtrado por una taxonomía personalizada deberíamos añadir en los argumentos un nuevo campo de ‘tax-type’ => ‘tax-name’ así que nos quedaría así:

<?php
$query_args = array(
  'post_type' =>  'custom-post', // Nuestro tipo de post personalizado
  'orderby'   =>  'date',
  'order'     =>  'desc',
  'number'    =>  $display_count,
  'page'      =>  $page,
  'offset'    =>  $offset,
  'tax-type'  =>  'tax-name'
);
?>