- Statut : non résolu
- Ce sujet contient 3 réponses, 2 participants et a été mis à jour pour la dernière fois par
Lionelwp, le il y a 10 années et 3 mois.
-
AuteurMessages
-
16 janvier 2015 à 17 h 34 min #546235
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 4.0
– Version de PHP/MySQL : 5.4
– Thème utilisé : perso
– Extensions en place : polylang, tinyMce advanced, simple lightbox
– Nom de l’hebergeur : 1&1
– Adresse du site :Problème(s) rencontré(s) :
j’ai créé un custom post type (mk_poem) qui contient des poèmes,
je veux en afficher 3 par page, avec une pagination.
J’ai créé le code suivant, et quand je change de page, je me retrouve systématiquement avec les 3 premiers posts tout le temps.
La fonction ‘paginate_link’ affiche bien les numéros de pages avec la classe active pour chaque page, mais la page n’affiche que les 3 premiers posts..je vois pas où est l’errer, c’est surement trop gros pour que je le vois .. peut être 🙂
merci
<div id="wrap-content" class="poem-container cf">
<div id="content-page">
<?php
$args = array(
'post_type' => ‘mk_poem’,
‘posts_per_page’ => 3
);
$poems = new WP_Query($args);
if ( $poems->have_posts() ):
while ( $poems->have_posts() ):
$poems->the_post();
get_template_part( ‘content’, ‘poem’ );
endwhile;
else: ?>
<article class="post-content">
<p>aucun contenu trouvé !! </p>
</article>
<?php endif; ?>
<?php
$big = 999999999; // need an unlikely integer
$total_pages = $poems->max_num_pages;
if ($total_pages > 1): ?>
<div class="mk-pagination">
<?php echo paginate_links( array(
'base' => str_replace( $big, ‘%#%’, esc_url( get_pagenum_link( $big ) ) ),
‘format’ => ‘/page/%#%’,
‘current’ => max( 1, get_query_var(‘paged’) ),
‘total’ => $total_pages,
‘prev_next’ => True,
‘prev_text’ => __(‘« Previous page’, ‘abx’),
‘next_text’ => __(‘Next page »’, ‘abx’),
) ); ?>
</div>
<?php endif; ?>
<!-- fin content_page --></div>16 janvier 2015 à 20 h 19 min #990750J’ai trouvé une solution en modifiant la requête comme suit, ça marche mais je comprends pas tout ce qui se passe…
le paramètre get_query_var(‘paged’) vaut 0 sur la première page, 2 sur la 2ème et etc…. il ne vaut jamais 1
J’ai bon?? 🙂
‘mk_poem’,
‘posts_per_page’ => 3,
‘paged’ => $mapage
);
$poems = new WP_Query($args);
?>17 janvier 2015 à 22 h 19 min #990751C’est ça. Mais il n’y a pas que la query var ‘paged’ susceptible d’être écrasée (enfin si sur un site sans plugin). Il faut toutes les récupérer et n’écraser que celles que tu veux:
‘mk_poem’,
‘posts_per_page’ => 3,
);
$args = array_merge($GLOBALS[‘wp_query’]->query_vars, $args);
$poems = new WP_Query($args);C’est particulièrement vrai sur un site avec Polylang qui ajoute la query var ‘lang’
20 janvier 2015 à 13 h 43 min #990752merci Chouby 🙂
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.