Modifier le nombre de messages par page
3 réponses
- votes
-
- 2011-10-11
Cela lefera: (ajouter aufichierfunctions.php de votrethème)
add_action( 'pre_get_posts', 'set_posts_per_page' ); function set_posts_per_page( $query ) { global $wp_the_query; if ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_search() ) ) { $query->set( 'posts_per_page', 3 ); } elseif ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_archive() ) ) { $query->set( 'posts_per_page', 5 ); } // Etc.. return $query; }
This will do it: (add to your theme's functions.php)
add_action( 'pre_get_posts', 'set_posts_per_page' ); function set_posts_per_page( $query ) { global $wp_the_query; if ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_search() ) ) { $query->set( 'posts_per_page', 3 ); } elseif ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_archive() ) ) { $query->set( 'posts_per_page', 5 ); } // Etc.. return $query; }
-
«Set»est-il uneméthode de «$ query»?Is `set` a method of `$query`?
- 0
- 2011-10-11
- Rutwick Gangurde
-
@RutwickGangurde Oui.Enfait,is_search ()et is_archive () le sont aussi,ce quiestmaintenant unpeuplus clair après lamise àjour dema réponse avec desinformationsglanées dans ce super article: http://www.billerickson.net/customize-the-wordpress-query/Cet articlenote également quenous aurons laméthode $ wp_query->is_main_query () dans WP3.3,ce quiestplutôt cool.@RutwickGangurde Yes. In fact, is_search() and is_archive() are too, which is now a little more clear after updating my answer with info gleaned from this great post: http://www.billerickson.net/customize-the-wordpress-query/ That article also notes that we'll have the $wp_query->is_main_query() method in WP3.3, which is pretty cool.
- 0
- 2011-10-11
- Dave Romsey
-
Hommemerveilleux!Mercibeaucouppour le supermessage.Jen'aijamais connu cesméthodes,et j'avais l'habitude d'explorer l'objet/letableaupourmodifier/définir des valeurs.Bonpour les hacks à la volée!+1pour vous!Awesome man! Thanks a lot for the great post. I never knew these methods, and I used to drill down the object / array to change / set values. Good for on the fly hacks! +1 for you!
- 0
- 2011-10-11
- Rutwick Gangurde
-
Depuis quand était-ilnécessaire dene jamais le changer si letableau debordis_admin?On dirait que celane synchronisepas le "Nombre d'élémentsparpage:" dans les options d'écran de WP,ce quipeutentraîner despages vers lesquelles vousne pouvezpaspaginer.Since when was it necessary to never change it if is_admin dashboard? Looks like it doesn't sync the "Number of items per page:" in screen options in WP possibly resulting in pages you can't page to.
- 0
- 2016-01-18
- NoBugs
-
- 2018-10-10
Amélioration de la réponse ci-dessus: le hook
pre_get_posts
est récupérépar référence,ilne nécessite doncpas d'appelglobal
ou d'appelreturn
.add_action( 'pre_get_posts', 'set_posts_per_page' ); function set_posts_per_page( $query ) { if ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_search() ) ) { $query->set( 'posts_per_page', 3 ); } elseif ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_archive() ) ) { $query->set( 'posts_per_page', 5 ); } // Etc.. }
Improving on the answer above: hook
pre_get_posts
is fetched by reference, thus it does not require aglobal
call or areturn
call.add_action( 'pre_get_posts', 'set_posts_per_page' ); function set_posts_per_page( $query ) { if ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_search() ) ) { $query->set( 'posts_per_page', 3 ); } elseif ( ( ! is_admin() ) && ( $query === $wp_the_query ) && ( $query->is_archive() ) ) { $query->set( 'posts_per_page', 5 ); } // Etc.. }
-
Il y a aussi unproblème avec votre code car l'utilisation de la requêteglobale $ wp_queryentraînera ungaspillage demémoiremais vousne pouvezpas appeler divers $ wp_the_querynon définisThere is a problem with your code too as using the global $wp_query will resort into memory wastage but you can't call undefined various $wp_the_query
- 0
- 2019-09-16
- Abdulkabir Ojulari
-
- 2019-09-16
En utilisant $ GLOBALS ['wp_query'] ou simplement $ wp_query
add_action( 'pre_get_posts', 'set_posts_per_page' ); function set_posts_per_page( $query ) { if ( ( ! is_admin() ) && ( $query === $GLOBALS['wp_query'] ) && ( $query->is_search() ) ) { $query->set( 'posts_per_page', 3 ); } elseif ( ( ! is_admin() ) && ( $query === $GLOBALS['wp_the_query'] ) && ( $query->is_archive() ) ) { $query->set( 'posts_per_page', 5 ); } return $query; }
Using $GLOBALS['wp_query'] or just $wp_query
add_action( 'pre_get_posts', 'set_posts_per_page' ); function set_posts_per_page( $query ) { if ( ( ! is_admin() ) && ( $query === $GLOBALS['wp_query'] ) && ( $query->is_search() ) ) { $query->set( 'posts_per_page', 3 ); } elseif ( ( ! is_admin() ) && ( $query === $GLOBALS['wp_the_query'] ) && ( $query->is_archive() ) ) { $query->set( 'posts_per_page', 5 ); } return $query; }
Dans les paramètres => Lecture => Lespages deblog s'affichent aumaximum [champ de saisie] messages
Je l'aifixé à 3messagespour lemoment.
Surmonindex,archives de dates,archives debalises,archives de catégories,résultats de recherche,etc ... Toutes lespages qui utilisent laboucleet lapagination,il affichemaintenant 3 articlesparpage.
Mon objectifest depouvoir avoir unnombre de résultats différentpour différentespages.Surmonindex,j'aipeut-être 3 articles,mais sur les résultats de recherche ou les archives,affichez unnombre différent de résultatsparpage.
Avez-vous desidéespourfaire cela?