posts_per_page no limit
-
-
Ich habeeine Weilegegoogelt und den WP-Codex durchsucht,aberich kanneinfach keine direkte Antwort auf dieseeinfache Fragefinden.Ichglaube,meine Frageist klarmit Beispielcodeformuliert und wasmein Versuch war (einen hohen Wertfür das Argument setzen).Ichbin kein WP-Experte,deshalbbin ich hierhergekommen,um die Frage zu stellen.Selbst die Beantwortung von Fragen,die Ihnentrivialerscheinen,ist hilfreich,um diese Stack Exchange-Communitys zuerweitern.Ichpersönlich liebees,einen Stapelüberlauf-Linkin meinen Suchergebnissen zu sehen,im Gegensatz zueinem Link zueinem beschissenen Forum.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
-
Danke auchfür die Antwort.Sie solltenes als Antwort undnicht als Kommentarposten,damitiches akzeptieren kann.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
-
Ich habe Ihren Standpunkt verstanden undich schätze Ihre Bemühungen,die Frage zu * schreiben *.Ich stimme auch zu,dass sichnicht sachkundige Fragenin dieser Community als wertvollerweisen können.Andererseits können zu viele solcher Frageneinige Experten davon abhalten,sich hier zuengagieren.Ich denke,esgeht umeine Art Gleichgewicht.Wie auchimmer,ichbin eingroßer Wähler,alsofreueichmich auf Ihrenächsten Fragen :) Viel Spaß hier auf 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: Siemöchten auch `type` durch`post_type`ersetzen (oder diese Zeileganzentfernen).Ich werde sowohl die Antwort von Rutwick als auch Ihre Fragebearbeiten,um zu verhindern,dassjemand diesen kleinen Fehler kopiert.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 Dankefür den Korrekturmann ... habemichnur aufposts_per_page konzentriert und daher den Tippfehler kopiert!;)@Maugly Thanks for the correction man... just focused on posts_per_page hence copied the typo! ;)
- 0
- 2011-12-11
- Rutwick Gangurde
-
6 Antworten
- Stimmen
-
- 2011-12-11
-1ist deine Antwort!Suchen Sie hiernach
posts_per_page
.$args = array( 'post_type' => 'post', 'cat' => '22,47,67', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'depth' => 1, 'posts_per_page' => -1 );
Wichtige Einschränkung : Dies kann zueiner sehrgroßen Abfrageführen,die die Site zum Absturzbringen kann.Tun Sie diesnur,wenn Sie sicher sind,dass Ihre Datenbank damit umgehen kann.Nichtin öffentlichen Themen oder Plugins.
-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.
-
Wichtige Einschränkung: Dies kann zueiner sehrgroßen Abfrageführen,die die Site zum Absturzbringen kann.Tun Sie diesnur,wenn Sie sicher sind,dass Ihre Datenbank damit umgehen kann.Nichtin öffentlichen Themen oder Plugins.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 Hinzufügen Ihres Kommentars als Update zur Antwort.@toscho Adding your comment as an update to the answer.
- 0
- 2016-11-23
- Rutwick Gangurde
-
du rettestmein Leben!!you save my life!!
- 0
- 2019-10-11
- Darlan Dieterich
-
@DarlanDieterich Ichbin froh,dassich helfen konnte!:) :)@DarlanDieterich Glad I could help! :)
- 0
- 2019-10-14
- Rutwick Gangurde
-
- 2011-12-12
Alternativ können Sie auch
WP_Query
übergeben (wasquery_posts verwendet) das Argument
nopaging
,dasim Grunde das Gleichetut.$ args=array ( 'nopaging'=>wahr //Deine anderen Argumente usw .. );
Es wirdgenau das Gleichetun,aber wenn Sie später darauf zurückblickenmüssen und sichnichterinnern können,was Siegetan haben,wird Ihnenpersönlich klar sein,was Siemit diesem Parameterbeabsichtigt habeninnerhalb des Args-Arrays.
Wieichbereitserwähnt habe,werdenbeidetatsächlich dasselbeerreichen.
Es kannnicht schaden,mehr alseinen Ansatz zu haben,undesistimmer schön zuteilen,was Sie wissen. Es reicht zu sagen,dass dies der Grundfürmeine Antwortist,obwohl Siebereitseinen ausreichenden haben ..;)
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
Aus der Funktionsdatei Ihres untergeordneten Themas:
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
Verwenden von Ricardomit einigen Änderungen:
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;
Dadurch wird die Abfragezeiterheblich verlängert,indemnur die ID-Zeile abgefragt wird und die Aktualisierung von Term und Meta-Cache vermieden wird.
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.
-
Nett! dankefür das Teilen.Nice! thanks for sharing.
- 0
- 2019-10-18
- Ricardo Canelas
-
- 2016-08-11
Die richtige Antwortfür Ihr Problem lautet
'posts_per_page' => -1
,weil-1
unbegrenzt viele Beiträgepro Seite zurückgibt,wenn die anderen Benutzer antworten.Ichmöchte dieser Frage/Antwortnurein Add-On hinzufügen,
Wenn Sie die Anzahl der Beiträgepro Seite aus der Leseeinstellungim WordPress Administration Panel abrufenmöchten,müssen Sie die Funktion
get_option()
aufrufen undposts_per_page
als übergebenZeichenfolge dazu.$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') );
Ich hoffe,diese Antwort hilftjemandem,da siemir hilft.Happy Coding Stackexchange-Benutzer
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
-
Dasisteigentlicheine schöne Ergänzung!That's actually a nice addition!
- 0
- 2017-12-29
- Herbert Van-Vliet
-
- 2017-02-22
Oder ..
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; }
-
Sie sollten Kontext hinzufügen,um Ihren Code zuerklären,Ihre Idee,um die Frage zu lösen.You should add context to explain your code, your idea to solve the question.
- 2
- 2017-02-22
- bueltge
Ichmöchte ALLE Beiträgemit
query_posts
zurückgeben.Ich habe versucht,posts_per_page
aufeine wirklich hohe Zahl zu setzen,aberquery_posts
flippt aus undgibt keine Beiträge zurück.Wasist der richtige Weg,um Beiträge ohne Limit abzufragen?