La pagination ne fonctionne pas avec la boucle personnalisée
-
-
Après avoir répondu,j'ai relu votre question ... Vouliez-vous dire que votrepluginpagenavin'apparaissaitpas ou que lapagination vous conduisait à un 404?After answering I reread your question...Did you mean your pagenavi plugin wasn't showing up or that the pagination was bringing you to a 404?
- 0
- 2010-11-30
- eileencodes
-
WP Page Navine s'affichepas sur les articles avec des requêtes similaires (filtréesparplus d'une cléméta).Il apparaît surtoutes les autrespages comme les archives,leblog,etc.WP Page Navi isn't displaying on the posts with similar queries (filtered by more than one meta key). It's appearing on all other pages like archives, blog, etc.
- 0
- 2010-11-30
- nurain
-
5 réponses
- votes
-
- 2010-11-30
J'ai déjà rencontré ceproblème avec PageNavi.Ma solutionest de détournertemporairement la variable $ wp_query,puis de la réaffecter après avoirfermé laboucle.Unexemple:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args=array( 'post_type'=>'post', 'cat' => 6, 'posts_per_page' => 5, 'paged'=>$paged ); $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query($args); /* PageNavi at Top */ if (function_exists('wp_pagenavi')){wp_pagenavi();} if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); /* DO STUFF IN THE LOOP */ endwhile; endif; /* PageNavi at Bottom */ if (function_exists('wp_pagenavi')){wp_pagenavi();} $wp_query = null; $wp_query = $temp; wp_reset_query(); ?>
La dernière étape consiste à réaffecter la variable $ wp_query à ce qui était à l'origine,puis à réinitialiser la requêtepour recommencer.
* Modifier: * Balisephpfixe.Bon sniper oculaire.
I've run into this problem with PageNavi before. My solution is to hijack the $wp_query variable temporarily and then reassign it after closing the loop. An exmaple:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args=array( 'post_type'=>'post', 'cat' => 6, 'posts_per_page' => 5, 'paged'=>$paged ); $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query($args); /* PageNavi at Top */ if (function_exists('wp_pagenavi')){wp_pagenavi();} if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); /* DO STUFF IN THE LOOP */ endwhile; endif; /* PageNavi at Bottom */ if (function_exists('wp_pagenavi')){wp_pagenavi();} $wp_query = null; $wp_query = $temp; wp_reset_query(); ?>
The last step is to reassign the $wp_query variable to what is was originally and then reset the query back to start.
*Edit:*Fixed php tag. Good eye sniper.
-
Jene saispas quand PageNavi afait ce changement dans sonplugin,mais depuis Wordpress 3.0,j'ai dû détourner la variable $ wp_querypour que lapagination s'affiche sur desbouclespersonnalisées.Heureux d'avoirpu aider!:RÉI don't know when PageNavi made this change in their plugin, but ever since Wordpress 3.0 I've had to hijack the $wp_query variable to get pagination to show on custom loops. Glad I could help! :D
- 0
- 2010-11-30
- PNMG
-
`wp_pagenavi ()` [acceptemaintenant aussi l'argument `query`] (http://plugins.trac.wordpress.org/changeset/316324/wp-pagenavi/trunk/core.php),donc au lieu d'écraser` $ wp_query`vouspouvez écrire` wp_pagename (array ('query'=> $my_query)) `.`wp_pagenavi()` [now also accepts the `query` argument](http://plugins.trac.wordpress.org/changeset/316324/wp-pagenavi/trunk/core.php), so instead of overwriting `$wp_query` you can write `wp_pagename( array( 'query' => $my_query ) )`.
- 8
- 2011-02-17
- Jan Fabry
-
Cette solution afonctionnépourmoi.J'avais une autreboucle avant celle-ci,doncj'ai dû ajouter un wp_reset_query () avant le code de l'exemple.This solution worked for me. I had another loop before this one, so I had to add a wp_reset_query() before the code in the example.
- 0
- 2011-08-23
- Ryan
-
Voir [cette réponse] (https://wordpress.stackexchange.com/a/250944/9579)pour une autre solutionpossiblepour lapaginationnumérique avec des requêtespersonnalisées utilisant `WP_Query ();`.See [this answer](https://wordpress.stackexchange.com/a/250944/9579) for another possible solution for Numerical Pagination with custom queries using `WP_Query();`.
- 0
- 2017-04-18
- Michael Ecklund
-
- 2010-11-30
J'aieu unproblème similaireplustôt dans lajournée ...
Avez-vous untype demessagepersonnaliséet unepage ou unmessage avec lemême slug?Cela signifie-t-il l'URL d'unepage que vous avez/real-estateet la réécriture d'URL detype depublicationpersonnalisée sur/real-estate?
Sitelest le cas,vousne pouvezpasen avoir 2 avec lamême URL,sinon wordpress devient confus.
Vouspouvez soitmodifier l’URL,soitessayer ceci="noreferrer"> http://wordpress.org/support/topic/pagination-with-custom-post-type-listing?replies=23#post-1637753 .J'ai choisi de changermon URL,mais quelqu'un là-bas a écrit une requêtepersonnaliséepour contourner leproblème
I had a similar issue earlier today...
Do you have a custom post type and a page or post with the same slug? Meaning is the url of a page you have /real-estate and the custom post type url rewrite at /real-estate ?
If that's the case you can't have 2 with the same url or else wordpress gets confused.
You either can change the url or try this http://wordpress.org/support/topic/pagination-with-custom-post-type-listing?replies=23#post-1637753. I chose to change my url, but someone on there wrote a custom query to get around the problem
-
Jene pensepas queje porte lemêmenom.J'aien fait créé unenouvellepage appelée "Quick Move In - 60 Days"et ajouté laboucleen créant unmodèle depagepourelle.I don't think I have anything named the same. I actually created a new page called "Quick Move In - 60 Days" and added the loop in by creating a page template for it.
- 0
- 2010-11-30
- nurain
-
- 2016-09-02
J'utilise cecipour lapaginationpersonnaliséeet sonbonfonctionnement
//paginations for newsletter //define in function file function custom_pagination($numpages = '', $pagerange = '', $paged='') { if (empty($pagerange)) { $pagerange = 2; } /** * This first part of our function is a fallback * for custom pagination inside a regular loop that * uses the global $paged and global $wp_query variables. * * It's good because we can now override default pagination * in our theme, and use this function in default queries * and custom queries. */ if ($paged == '') { global $paged; if (empty($paged)) { $paged = 1; } } if ($numpages == '') { global $wp_query; $numpages = $wp_query->max_num_pages; if(!$numpages) { $numpages = 1; } } /** * We construct the pagination arguments to enter into our paginate_links * function. */ $pagination_args = array( 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%', 'total' => $numpages, 'current' => $paged, 'show_all' => false, 'end_size' => 1, 'mid_size' => $pagerange, 'prev_next' => true, 'prev_text' => __('◄'), 'next_text' => __('►'), 'type' => 'plain', 'add_args' => true, 'add_fragment' => '', 'after_page_number' => '', 'before_page_number' =>'', ); $paginate_links = paginate_links($pagination_args); if ( $paginate_links ) { echo "<nav class='custom-pagination'>"; //echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> "; echo $paginate_links; echo "</nav>"; } } ?>
//Définissez cecipourn'importe quelmodèle commetemplate-newsletter
<?php $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $newslatter_detail = array( 'post_type' => 'newsletter', 'post_status' => 'publish', 'posts_per_page' =>4, 'order' => 'ASC', //'orderby' =>'date', 'paged' => $paged ); $posts = new WP_Query( $newslatter_detail ); $posts_array = get_posts( $newslatter_detail ); if ( $posts -> have_posts() ) { while ( $posts->have_posts() ) : $posts->the_post(); the_title(); endwhile; wp_reset_postdata(); } else { ?> No Forum List found. <?php } ?> <div class="pagination"> <?php if (function_exists(custom_pagination)) { custom_pagination($posts->max_num_pages,"",$paged); } ?> </div>
I am Using This For Custom Pagination and its work fine
//paginations for newsletter //define in function file function custom_pagination($numpages = '', $pagerange = '', $paged='') { if (empty($pagerange)) { $pagerange = 2; } /** * This first part of our function is a fallback * for custom pagination inside a regular loop that * uses the global $paged and global $wp_query variables. * * It's good because we can now override default pagination * in our theme, and use this function in default queries * and custom queries. */ if ($paged == '') { global $paged; if (empty($paged)) { $paged = 1; } } if ($numpages == '') { global $wp_query; $numpages = $wp_query->max_num_pages; if(!$numpages) { $numpages = 1; } } /** * We construct the pagination arguments to enter into our paginate_links * function. */ $pagination_args = array( 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%', 'total' => $numpages, 'current' => $paged, 'show_all' => false, 'end_size' => 1, 'mid_size' => $pagerange, 'prev_next' => true, 'prev_text' => __('◄'), 'next_text' => __('►'), 'type' => 'plain', 'add_args' => true, 'add_fragment' => '', 'after_page_number' => '', 'before_page_number' =>'', ); $paginate_links = paginate_links($pagination_args); if ( $paginate_links ) { echo "<nav class='custom-pagination'>"; //echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> "; echo $paginate_links; echo "</nav>"; } } ?>
// Define this for any Template like template-newsletter
<?php $paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1; $newslatter_detail = array( 'post_type' => 'newsletter', 'post_status' => 'publish', 'posts_per_page' =>4, 'order' => 'ASC', //'orderby' =>'date', 'paged' => $paged ); $posts = new WP_Query( $newslatter_detail ); $posts_array = get_posts( $newslatter_detail ); if ( $posts -> have_posts() ) { while ( $posts->have_posts() ) : $posts->the_post(); the_title(); endwhile; wp_reset_postdata(); } else { ?> No Forum List found. <?php } ?> <div class="pagination"> <?php if (function_exists(custom_pagination)) { custom_pagination($posts->max_num_pages,"",$paged); } ?> </div>
-
Salut lafonction custom_pagination () définie dans lefichier defonctions duthème ou lefichier defonctions duplugin.et après avoirmis ce code dans votrefichier demodèle Définissez ceci après lapartie de commentaire dans le code ci-dessus=Définissez cecipourn'importe quelmodèle commetemplate-newsletterpourn'importe quelmodèle commetemplate-newsletter si vous avez des questions,faites-lemoi savoirici.Hi custom_pagination() function define in theme functions file or plugin functions file. and after you put this code in your template file Define this after comment part in above code =Define this for any Template like template-newsletter for any Template like template-newsletter if any query so let me know here.
- 0
- 2017-02-21
- Adnan Limdiwala
-
Toutproblème à ce sujet Etj'espère que celafonctionnerabien pour vousAny issue regarding this Ans I hope its work fine for you
- 0
- 2017-04-07
- Adnan Limdiwala
-
- 2013-06-28
Voici la solution qui afonctionnépourmoi,en utilisant unepartie du code original denurainet la réponse de Jan Fabry:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $myquery = new WP_Query( array( 'posts_per_page' => '2', 'paged'=>$paged // add any other parameters to your wp_query array ) ); ?> <?php if ($myquery->have_posts()) : while ($myquery->have_posts()) : $myquery->the_post(); ?> <!-- Start your post. Below an example: --> <div class="article-box"> <h2 class="article-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p class="article-excerpt"><?php echo(get_the_excerpt()); ?></p> </div> <!-- End of your post --> <?php endwhile; ?> <?php wp_pagenavi( array( 'query' => $myquery ) ); ?><!-- IMPORTANT: make sure to include an array with your previously declared query values in here --> <?php wp_reset_query(); ?> <?php else : ?> <p>No posts found</p> <?php endif; ?>
This is the solution that worked for me, using part of the original code by nurain and the answer by Jan Fabry:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $myquery = new WP_Query( array( 'posts_per_page' => '2', 'paged'=>$paged // add any other parameters to your wp_query array ) ); ?> <?php if ($myquery->have_posts()) : while ($myquery->have_posts()) : $myquery->the_post(); ?> <!-- Start your post. Below an example: --> <div class="article-box"> <h2 class="article-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p class="article-excerpt"><?php echo(get_the_excerpt()); ?></p> </div> <!-- End of your post --> <?php endwhile; ?> <?php wp_pagenavi( array( 'query' => $myquery ) ); ?><!-- IMPORTANT: make sure to include an array with your previously declared query values in here --> <?php wp_reset_query(); ?> <?php else : ?> <p>No posts found</p> <?php endif; ?>
-
- 2014-12-17
Vouspouvez afficher votretype demessagepersonnaliséen utilisant cetteméthode,votrepaginationpeutfonctionner !!!
<?php query_posts( array( 'post_type' => 'post', 'posts_per_page' => '2', 'paged' => get_query_var( 'paged' ) ) ); if (have_posts() ) : while (have_posts() ) : the_post(); ?> <!-- Start your post. Below an example: --> <div class="article-box"> <h2 class="article-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p class="article-excerpt"><?php echo(get_the_excerpt()); ?></p> </div> <!-- End of your post --> <?php endwhile; ?> <?php wp_pagenavi(); ?><!-- IMPORTANT: make sure to include an array with your previously declared query values in here --> <?php wp_reset_query(); ?> <?php else : ?> <p>No posts found</p> <?php endif; ?>
You Can Display you custom post type using this method your pagination can work !!!
<?php query_posts( array( 'post_type' => 'post', 'posts_per_page' => '2', 'paged' => get_query_var( 'paged' ) ) ); if (have_posts() ) : while (have_posts() ) : the_post(); ?> <!-- Start your post. Below an example: --> <div class="article-box"> <h2 class="article-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <p class="article-excerpt"><?php echo(get_the_excerpt()); ?></p> </div> <!-- End of your post --> <?php endwhile; ?> <?php wp_pagenavi(); ?><!-- IMPORTANT: make sure to include an array with your previously declared query values in here --> <?php wp_reset_query(); ?> <?php else : ?> <p>No posts found</p> <?php endif; ?>
J'ai unebouclepersonnalisée quej'utilisepour afficher certaines annoncesimmobilières qui seront disponibles dans les 60jours. Je l'appelle avec lafonction suivante:
Bien que labouclefonctionnetrèsbien,je n'arrivepas à lapaginer. Il affiche les 10premiersmessages (par défaut)maisne montrepas lapagination. La seulefaçon d'affichertous les articlesest de les afficher sur une seulepageen ajoutant
'posts_per_page' => -1,
J'ai desboucles similaires sur d'autrespages quin'ont aucunproblème àpaginer. La seule différence avec celui-ciest qu'ilexiste deux clésméta quifiltrent lesmessages.J'utilise WP Page Navipour ceciet le reste demespages. Jeferme laboucleet ajoute lapaginationen utilisant le code suivant:
Commentpuis-je résoudre ceproblème?