posts_per_page pas de limite
-
-
J'ai cherché sur Googlependant un certaintempset j'ai cherché le codex WP,maisje netrouvetout simplementpas de réponse directe à cette simple question.Je crois quema questionestformulée clairement avec unexemple de code,et quelle a étématentative (définir une valeur élevéepour l'argument).Jene suispas unexpert WP,c'estpourquoije suis venuicipourposer la question.Mêmefournir des réponses à des questions qui vous semblenttrivialesest utilepour développer ces communautés Stack Exchange.Personnellement,j'aime voir un lien Stack Overflow dansmes résultats de recherche,par opposition à un lien vers unforum demerde.I've been Googling for awhile and searching the WP codex, but I just can't find a direct answer to this simple question. I believe my question is worded clearly with example code, and what my attempt was (setting a high value for the argument). I'm not a WP expert, so thats why I came here to ask the question. Even providing answers to questions that seem trivial to you are helpful in growing these Stack Exchange communities. I personally love seeing a Stack Overflow link in my search results, as opposed to a link to a crappy forum.
- 6
- 2011-12-11
- Banjer
-
Merci aussipour la réponse.Vous devriez l'afficher comme une réponseet non comme un commentaire,afin queje puisse l'accepter.Also, thanks for the answer. You should post it as an answer and not a comment, so I can accept it.
- 0
- 2011-12-11
- Banjer
-
J'ai compris votrepointet j'apprécie voseffortspour * écrire * la question.Je conviens également que les questionsnon d'expertspeuvent se révéler utiles dans cette communauté.D'un autre côté,trop de questions de cetypepeuvent décourager certainsexperts de s'impliquerici.C'est une question d'équilibre,je suppose.Quoi qu'ilen soit,je suis ungrand électeur doncj'attends avecimpatience vosprochaines questions :) Passez unbonmomentici sur WPSE.I've got your point and I do appreciate your effort in *writing* the question. I also agree that non-expert questions can prove themselves valuable in this community. On the other hand too many of such questions can discourage some experts from getting involved here. It's all about some kind of balance I guess. Anyway I'm a big up-voter so I'm looking forward to your next questions :) Have a great time here on WPSE.
- 0
- 2011-12-11
- Michal Mau
-
PS: vous voulez également remplacer `type`par`post_type` (ou supprimer complètement cette ligne).Je vais éditer à lafois la réponse de Rutwicket votre questionpourempêcher quelqu'un de copier-coller cettepetite erreur.PS: you also want to replace `type` for `post_type` (or remove this line altogether). I will edit both the Rutwick's answer and your question to prevent somebody from copy-pasting this little mistake.
- 0
- 2011-12-11
- Michal Mau
-
@Maugly Mercipour l'homme de correction ...juste concentré surposts_per_page donc copié lafaute defrappe!;)@Maugly Thanks for the correction man... just focused on posts_per_page hence copied the typo! ;)
- 0
- 2011-12-11
- Rutwick Gangurde
-
6 réponses
- votes
-
- 2011-12-11
-1est votre réponse!Recherchez
posts_per_page
ici .$args = array( 'post_type' => 'post', 'cat' => '22,47,67', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'depth' => 1, 'posts_per_page' => -1 );
Miseen gardeimportante : celapeutentraîner une requêtetrès volumineuse susceptible defairetomber le site.Neprocédez ainsi que si vous êtes sûr que votrebase de donnéespeut legérer.Pas dans lesthèmes oupluginspublics.
-1 is your answer! Look for
posts_per_page
here.$args = array( 'post_type' => 'post', 'cat' => '22,47,67', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'depth' => 1, 'posts_per_page' => -1 );
Important caveat: This can result in a very huge query that can bring the site down. Do this only if you are sure your database can handle it. Not in public themes or plugins.
-
Miseen gardeimportante: celapeutentraîner une requêtetrès volumineuse quipeutfairetomber le site.Nefaites cela que si vous êtes ** sûr ** que votrebase de donnéespeut legérer.Pas dans lesthèmes oupluginspublics.Important caveat: This can result in a very huge query that can bring the site down. Do this only if you are **sure** your database can handle it. Not in public themes or plugins.
- 7
- 2016-08-11
- fuxia
-
@toscho Ajout de votre commentaire commemise àjour de la réponse.@toscho Adding your comment as an update to the answer.
- 0
- 2016-11-23
- Rutwick Gangurde
-
tume sauves la vie !!you save my life!!
- 0
- 2019-10-11
- Darlan Dieterich
-
@DarlanDieterich Heureux d'avoirpu vous aider!:)@DarlanDieterich Glad I could help! :)
- 0
- 2019-10-14
- Rutwick Gangurde
-
- 2011-12-12
Vouspouvez égalementtransmettre
WP_Query
(c'est ce quequery_posts
utilise) l'argumentnopaging
,quifaitessentiellement lamême chose ..$args = array( 'nopaging' => true // Your other args, etc.. );
Celaferaexactement lamême chose,mais si vous devez y revenirplustardet que vousne vous souvenezpas de ce que vousfaisiez,je pensepersonnellement que ce seraplus clairpour vous,ce que vous vouliez avec ceparamètreà l'intérieur dutableau args.
Commeje l'aimentionné cependant,ils atteindronttous les deux lamême chose.
Çane faitpas demal d'avoirplus d'une approche,et c'esttoujours agréable departager ce que vous savez,il suffit de dire que c'est la raison dema réponse,même si vousen avez déjà une suffisante ..;)
Or alternatively you can pass
WP_Query
(which is whatquery_posts
uses) thenopaging
argument, which basically does the same thing..$args = array( 'nopaging' => true // Your other args, etc.. );
It will do exactly the same, but if you have to look back at it later and can't remember what you were doing, i personally feel it will be more clear to you, what it is you were intending with that parameter inside the args array.
As i mentioned however, they'll both actually achieve the same.
Can't hurt to have more than one approach, and it's always nice to share what you know, suffice to say that's the reason for my answer, despite you already having a sufficient one.. ;)
-
- 2014-02-23
Depuis votrefichier defonctions dethèmesenfants:
add_action( 'pre_get_posts', 'wpsites_no_limit_posts' ); function wpsites_no_limit_posts( $query ) { if( $query->is_main_query() && !is_admin() && is_home() ) { $query->set( 'posts_per_page', '-1' ); $query->set( 'order', 'ASC' ); $query->set( 'post_type', 'post' ); $query->set( 'cat', '22,47,67' ); $query->set( 'orderby', 'name' ); $query->set( 'order', 'ASC' ); $query->set( 'hide_empty', '1' ); $query->set( 'depth', '1' ); } }
From your child themes functions file:
add_action( 'pre_get_posts', 'wpsites_no_limit_posts' ); function wpsites_no_limit_posts( $query ) { if( $query->is_main_query() && !is_admin() && is_home() ) { $query->set( 'posts_per_page', '-1' ); $query->set( 'order', 'ASC' ); $query->set( 'post_type', 'post' ); $query->set( 'cat', '22,47,67' ); $query->set( 'orderby', 'name' ); $query->set( 'order', 'ASC' ); $query->set( 'hide_empty', '1' ); $query->set( 'depth', '1' ); } }
-
- 2019-10-17
Utilisation de Ricardo avec quelquesmodifications:
static $paged; $post_ids = []; do { $paged++; $defaults = [ 'fields' => 'ids', // Only return the ID field to make this query faster. 'post_type' => 'post', 'posts_per_page' => 100, 'no_found_rows' => false, // We need pagination & the count for all posts found. 'paged' => $paged, 'update_post_term_cache' => false, 'update_post_meta_cache' => false, ]; $query = new WP_Query($defaults); if ($query->have_posts()) { foreach ($query->posts as $id) { $post_ids[] = $id; } } } while ($query->max_num_pages > $paged); return $post_ids;
Cela augmentera considérablement letemps de requêteen interrogeant uniquement la ligne IDet en évitant demettre àjour letermeet leméta-cache.
Using Ricardo's with some modification:
static $paged; $post_ids = []; do { $paged++; $defaults = [ 'fields' => 'ids', // Only return the ID field to make this query faster. 'post_type' => 'post', 'posts_per_page' => 100, 'no_found_rows' => false, // We need pagination & the count for all posts found. 'paged' => $paged, 'update_post_term_cache' => false, 'update_post_meta_cache' => false, ]; $query = new WP_Query($defaults); if ($query->have_posts()) { foreach ($query->posts as $id) { $post_ids[] = $id; } } } while ($query->max_num_pages > $paged); return $post_ids;
This will dramatically increase the query time by only querying against the ID row and avoiding updating term and meta cache.
-
Agréable! Merci d'avoirpartagé.Nice! thanks for sharing.
- 0
- 2019-10-18
- Ricardo Canelas
-
- 2016-08-11
Labonne réponse à votreproblèmeest
'posts_per_page' => -1
car-1
renverra unnombreillimité depublicationsparpage,comme les autres utilisateurs répondent.Je veuxjuste ajouter unmodule complémentaire à ce Q/R,
Si vous souhaitez obtenir lenombre d'articlesparpage àpartir duparamètre de lecture sur lepanneau d'administration WordPress,vous devez appeler lafonction
get_option()
et passerposts_per_page
en tant quechaîne.$args = array( 'post_type' => 'post', 'cat' => '22,47,67', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'depth' => 1, 'posts_per_page' => get_option('posts_per_page') );
J'espère que cette réponse aidera quelqu'un commeellem'aidera.Heureux utilisateurs de Stackexchange de codage
The right answer for your issue is
'posts_per_page' => -1
because-1
will return unlimited posts per page As the others users answer.I just want to add an add-on to this Q/A,
If you want to get the number of posts per page from the reading setting on WordPress Administration Panel you have to call the
get_option()
function and passposts_per_page
as a string to it.$args = array( 'post_type' => 'post', 'cat' => '22,47,67', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'depth' => 1, 'posts_per_page' => get_option('posts_per_page') );
I hope this answer will help someone as it help me. Happy Coding Stackexchange Users
-
C'esten fait unbel ajout!That's actually a nice addition!
- 0
- 2017-12-29
- Herbert Van-Vliet
-
- 2017-02-22
Ou ..
function getAll($arg, $posts_per_page = 50) { $data = array(); $page = 1; do{ $arg['paged'] = $page; $arg['posts_per_page'] = $posts_per_page; $query = new WP_Query($arg); foreach ($query->posts as $post){ $data[] = $post; } $page++; }while(count($query->posts) === $posts_per_page); return $data; }
Or..
function getAll($arg, $posts_per_page = 50) { $data = array(); $page = 1; do{ $arg['paged'] = $page; $arg['posts_per_page'] = $posts_per_page; $query = new WP_Query($arg); foreach ($query->posts as $post){ $data[] = $post; } $page++; }while(count($query->posts) === $posts_per_page); return $data; }
-
Vous devez ajouter du contextepourexpliquer votre code,votreidéepour résoudre la question.You should add context to explain your code, your idea to solve the question.
- 2
- 2017-02-22
- bueltge
Je veux renvoyer TOUS lesmessages avec
query_posts
.J'aiessayé de définirposts_per_page
sur unnombretrès élevé,maisquery_posts
paniqueet ne renvoie aucunmessage.Quelleest labonnefaçon d'interroger lesmessages sans limite?