web-dev-qa-db-fra.com

La pagination ne fonctionne pas?

J'ai mon propre type de message personnalisé et 15 éléments.

Ce code affiche tous les éléments:

<?php   $loop = new WP_Query( array( 'post_type' => 'my_post_type', 'posts_per_page' => 15 ) );
  while ( $loop->have_posts() ) : $loop->the_post(); ?>
(...)

Lorsque je modifie posts_per_page en "5", il devrait y avoir 3 pages, mais il n'affiche que 5 éléments et il n'y a pas d'autres pages (ou du moins je ne sais pas comment y accéder).

Ce code n'affiche rien:

<?php if (  $wp_query->max_num_pages > 1 ) : ?>
  {menu or any html code}
<?php endif; ?>

Peut-être que je fais quelque chose de mal? J'ai tout le code/boucle dans le fichier page-myposttype.php.

J'ai essayé ce code:

   $temp = $wp_query;
    $loop= null;
    $paged = get_query_var('paged') ? get_query_var('paged') : 1;
    $loop = new WP_Query( array( 
    'post_type' => 'my_post_type',   
    'paged' => $paged, 
    'posts_per_page' => 2 ) );
        while ( $loop->have_posts() ) : $loop->the_post(); ?>

Mais pas de chance ... Quand je tape wordpress/my_post_type/page/2 (page/3 etc.) manuellement, je vois d'autres pages et elles fonctionnent bien. Mais je ne peux pas faire écho à la navigation par défaut ... :(

1
Wordpressor

A répondu à une question pratiquement identique à celle-ci très récemment sur les forums WordPress.org.

Page d'archive de type de message personnalisé - La pagination ne fonctionne pas

J'ai fourni une solution de contournement/solution dans ce fil qui devrait également fonctionner pour vous.

:)

EDIT: Vous devez également ajouter le paramètre paging à votre requête.

Par exemple.

$args = array( 
    'post_type' => 'my_post_type', 
    'paged' => get_query_var('paged') ? get_query_var('paged') : 1,
    'posts_per_page' => 15, 
);
$loop = new WP_Query;
$loop->query( $args );

J'ai reformaté le code pour le rendre un peu plus lisible, le résultat final sera le même.

1
t31os