posts_per_page sem limite
-
-
Eutenhogooglingpor algumtempoe procurando o códice WP,mas simplesmentenão consigoencontrar uma resposta diretaparaessapergunta simples.Acredito queminhapergunta é redigida claramente com o código deexemplo,e o queminhatentativafoi (definindo um alto valorpara o argumento).Eunão sou umespecialistaem WP,então éporisso que vim aquiparafazer apergunta.Mesmofornecendo respostas aperguntas queparecemtriviaispara você é útilna crescenteestas comunidades detroca depilha.Eupessoalmente amo ver um link deestouro depilhaem meus resultados depesquisa,em oposição a um linkpara umfórum debaixa qualidade.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
-
Além disso,obrigadopela resposta.Você devepostar como uma respostae não um comentário,para queeupossa aceitá-lo.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
-
Eutenho o seupontoe aprecio seuesforçoem *escrevendo * apergunta.Eutambém concordo queperguntasnãoespecialistaspodem seprovar valiosasnesta comunidade.Por outro lado,muitas dessas questõespodem desencorajar algunsespecialistas de seenvolverem aqui.Étudo sobre algumtipo deequilíbrio,eu acho.De qualquerforma,sou umgrandeeleitor,entãoestou ansiosopor suaspróximasperguntas :) Tenha um ótimotempo aquino 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: Vocêtambém deseja substituir `tipo`para`post_type` (ou removaesta linha completamente).Voueditar a resposta da Rutwicke suaperguntaparaevitar que alguém coloreessepequenoerro.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 obrigadopelo homem de correção ... apenasfocadoem posts_per_page,portei,portanto,oerro de digitação!;)@Maugly Thanks for the correction man... just focused on posts_per_page hence copied the typo! ;)
- 0
- 2011-12-11
- Rutwick Gangurde
-
6 respostas
- votos
-
- 2011-12-11
-1 é a sua resposta!Procurepor
posts_per_page
aqui$args = array( 'post_type' => 'post', 'cat' => '22,47,67', 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => 1, 'depth' => 1, 'posts_per_page' => -1 );
advertênciaimportante : Issopode resultarem uma consultamuitogrande quepodetrazer o siteparabaixo.Façaisso apenas se vocêtiver certeza de que seubanco de dadospode lidar comele.Nãoem temas oupluginspúblicos.
-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.
-
Importante advertência: Issopode resultarem uma consultamuitogrande quepodetrazer o siteparabaixo.Façaisso apenas se vocêfor ** certo ** Seubanco de dadospode lidar comele.Nãoem temas oupluginspúblicos.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 Adicionando seu comentário como uma atualizaçãopara a resposta.@toscho Adding your comment as an update to the answer.
- 0
- 2016-11-23
- Rutwick Gangurde
-
Você salvaminha vida !!you save my life!!
- 0
- 2019-10-11
- Darlan Dieterich
-
@Darlandietarich Quebom queeupoderia ajudar!:)@DarlanDieterich Glad I could help! :)
- 0
- 2019-10-14
- Rutwick Gangurde
-
- 2011-12-12
ou alternativamente vocêpodepassar
wp_query
(Qual é o quequery_posts
Usos) ONopaging Argumento,quebasicamentefaz amesma coisa .. $ args=array ( 'Nopagem'=>verdade //seus outros args,etc. );
vaifazerexatamente omesmo,mas se vocêtem que olharparaissomaistardee não consigo lembrar o que vocêestavafazendo,eupessoalmente sinto queficarámais claropara você,o que vocêestavapretendendo comesseparâmetrodentro do array args.
Comoeumencionei,noentanto,eles realmente conseguem omesmo.
nãopode doertermais de uma abordagem,e é semprebom compartilhar o que você sabe,é suficiente dizer que é a razãopara aminha resposta,apesar de vocêjáter um suficiente ..;)
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
do seu arquivo defunções detemasfilho:
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
Usando o Ricardo com algumamodificação:
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;
Isso aumentará drasticamente otempo de consulta apenas consultando a linha deidentificaçãoe evitar a atualização dotermoe ometa 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.
-
Legal!Obrigadopor compartilhar.Nice! thanks for sharing.
- 0
- 2019-10-18
- Ricardo Canelas
-
- 2016-08-11
A resposta certapara o seuproblema é
'posts_per_page' => -1
porque-1
retornarápostagensilimitadasporpágina como os outros usuários responderem.Eu só quero adicionar um add-on aeste Q/A,
Se você quiser obter onúmero depostsporpáginana configuração de leituranopainel de administração do WordPress,você deve chamar o
get_option()
funçãoe passarposts_per_page
comostringparaele.$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') );
Espero queesta resposta ajude alguém comome ajudar.Usuários de StackExchange de codificaçãofeliz
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
-
Essa é realmente umaboa adição!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; }
-
Você deve adicionar contextoparaexplicar seu código,suaideiapara resolver a questão.You should add context to explain your code, your idea to solve the question.
- 2
- 2017-02-22
- bueltge
Eu quero retornartodas aspostagens com
query_posts
.Eutentei definirposts_per_page
para umnúmero realmente alto,masquery_posts
freaks oute não retornanenhumpostagem.Qual é amaneira correta de consultarpostagens sem limite?