Como obter todas as postagens com qualquer status de postagem?
-
-
Vocêjátentou usar oparâmetro [`post_status`] (http://codex.wordpress.org/function_reference/wp_query#type_.26_status_parameters),isto é.`'post_status'=> 'qualquer' '?Have you tried using the [`post_status` parameter](http://codex.wordpress.org/Function_Reference/WP_Query#Type_.26_Status_Parameters), ie. `'post_status' => 'any'`?
- 5
- 2011-03-30
- t31os
-
Eu ***fortemente *** recomendar usando `wp_query``pre_get_posts` ou `get_posts`em vez de` very_posts`.Nunca use `Query_Posts`I ***strongly*** recommend using `WP_Query` `pre_get_posts` or `get_posts` instead of `query_posts`. Never use `query_posts`
- 2
- 2013-04-16
- Tom J Nowell
-
@Tomjnowell: Issoestava de volta :) Eu uso WP_Querymais atuando agora ..@TomJNowell: that was way back :) I use WP_Query most ofter now..
- 0
- 2013-04-17
- Sisir
-
@Sisir Seja cuidadoso,use `WP_Query`parafront-end,e`get_posts`para consultas de administrador como há umproblema com `wp_reset_postdata` (Veja o [NOTA] (https://codex.wordpress.org/class_reference/wp_query#Interacting_with_wp_query)e [ticket] (https://core.trac.wordpress.org/ticket/18408)nesteproblema).@Sisir be careful, use `WP_Query` for front-end, and `get_posts` for admin queries as there is an issue with `wp_reset_postdata` (see the [note](https://codex.wordpress.org/Class_Reference/WP_Query#Interacting_with_WP_Query) and [ticket](https://core.trac.wordpress.org/ticket/18408) on this issue).
- 1
- 2017-01-30
- Aurovrata
-
5 respostas
- votos
-
- 2011-03-30
Vocêpode usar oparâmetropost_status:
* 'publish' - a published post or page * 'pending' - post is pending review * 'draft' - a post in draft status * 'auto-draft' - a newly created post, with no content * 'future' - a post to publish in the future * 'private' - not visible to users who are not logged in * 'inherit' - a revision. see get_children. * 'trash' - post is in trashbin. added with Version 2.9.
Nãotenho certeza de que aceita "qualquer",então use umamatriz comtodos os status desejados:
$args = array( 'post_type' => 'my-post-type', 'post_author' => $current_user->ID, 'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash') ); $query = new WP_Query($args); while ( $query->have_posts() ) : $query->the_post();
You can use the post_status parameter:
* 'publish' - a published post or page * 'pending' - post is pending review * 'draft' - a post in draft status * 'auto-draft' - a newly created post, with no content * 'future' - a post to publish in the future * 'private' - not visible to users who are not logged in * 'inherit' - a revision. see get_children. * 'trash' - post is in trashbin. added with Version 2.9.
I'm not sure that it accepts 'any' so use an array with all of the statuses you want:
$args = array( 'post_type' => 'my-post-type', 'post_author' => $current_user->ID, 'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash') ); $query = new WP_Query($args); while ( $query->have_posts() ) : $query->the_post();
-
Vocêtambémpode usar "get_post_stati ()"para obtertodos os status,incluindo os customizados.You could also use `get_post_stati()` to get all statuses, including custom ones.
- 8
- 2013-01-31
- fuxia
-
Uma oportunidade desperdiçadaparamatar uma chamada de "Query_posts" ...A wasted opportunity to kill off a `query_posts` call...
- 5
- 2013-04-16
- Tom J Nowell
-
Pena quenãopodemosfazer algo comoeste `'post_status'=> array ('! herdar');` (paraindicar qualquerpost_status diferente de herdar)too bad we can't do something like this `'post_status' => array( '!inherit' );` (to indicate any post_status other than inherit)
- 0
- 2017-01-03
- aequalsb
-
@Aequalsbe quanto ao `'post_status'=> array_diff (get_post_stati (),['herdar']);`@aequalsb what about `'post_status' => array_diff(get_post_stati(), ['inherit']);`
- 0
- 2018-10-29
- Cheslab
-
fora do assunto.'qualquer' é uma coisa realna verdade.Documentos: https://developer.wordpress.org/reference/classes/wp_query/#post-type-Parameters.off-topic. 'any' is a real thing actually. Docs: https://developer.wordpress.org/reference/classes/wp_query/#post-type-parameters
- 2
- 2020-01-20
- kirillrocks
-
- 2013-01-31
Existe umamaneira simples,como obtertodas aspostagens com qualquer status:
$articles = get_posts( array( 'numberposts' => -1, 'post_status' => 'any', 'post_type' => get_post_types('', 'names'), ) );
Agora vocêpodeiterarem todas aspostagens:
foreach ($articles as $article) { echo $article->ID . PHP_EOL; //... }
There is simple way, how to get all posts with any status:
$articles = get_posts( array( 'numberposts' => -1, 'post_status' => 'any', 'post_type' => get_post_types('', 'names'), ) );
Now you can iterate throughout all posts:
foreach ($articles as $article) { echo $article->ID . PHP_EOL; //... }
-
** $postagense $post conflito com osnomes de variáveis do WordPress **.Se vocêestiver usandoeste códigopara colocar algo,além doprincipal (conteúdoprincipal) div,isso substituirá o queteria sidoexibidonoprincipal.Se suaintenção é realmente substituir completamente os resultados da consulta original,éisso que você quer,é claro.Mas ainda é umaboaideia renomear os $postagense $pós variáveis.**$posts and $post conflict with Wordpress' own variable names**. If you are using this code to put something in other than the primary (main content) div, this will overwrite what would have been shown in main. If your intention really is to completely replace the original query results, this is what you want, of course. But it's still a good idea to rename the $posts and $post variables.
- 2
- 2014-02-03
- Henrik Erlandsson
-
@Henrik Eunãopretendo diminuir seu comentário (sua lógica é sólidae segura),maseu considero usarpostagens de $post/$ comoperfeitamente aceitável dentro de umafunção sem acesso às variáveisglobais de $post/$posts -porqueIssome ajuda amanter a lógica durante o desenvolvimento.@Henrik i am not intending to diminish your comment at all (your logic is sound and safe), but i consider using $post/$posts as perfectly acceptable inside a function without access to the global $post/$posts variables -- because it helps me maintain logic during development.
- 5
- 2017-01-03
- aequalsb
-
- 2012-10-05
ométodo
WP_Query
->query()
aceita umany
parapost_status
.Verwp_get_associated_nav_menu_items()
para umaprova.omesmo valepara
get_posts()
(que é apenas um wrapperpara a chamada acima).The
WP_Query
class method->query()
accepts anany
argument forpost_status
. Seewp_get_associated_nav_menu_items()
for a proof.The same goes for
get_posts()
(which is just a wrapper for above call).-
Apartir do WP_Query Docs: _'''any '- Recupera qualquer status,exceto aqueles depostagens com'exclude_from_search 'para True._ (há umerro de digitação lá,eles realmente significam status depostagemem vez deposters.) Isso significarascunhoe `lixo` sãoexcluídos.From the WP_Query docs: _'any' - retrieves any status except those from post types with 'exclude_from_search' set to true._ (There's a typo there, they actually mean post statuses instead of post types.) This means statuses `auto-draft` and `trash` are excluded.
- 4
- 2013-04-15
- Tamlyn
-
@Tamlyn afaik,issonão éerro de digitação.IT _Retrie qualquer status de Post Tipos_ queestão disponíveispublicamente.Status são apenastermos.Elesnãotêmpropriedade _public_ ou _private_.Você _could_ desabilita umataxonomia com a desativação do `Query_Var`por qualquermotivo que alguémfariaisso.Sidenote: [oplural do status dopost é ...] (http://unserkaiser.com/unategorized/status-and-plural/).@Tamlyn Afaik, this is no typo. It _retrieves any status from post types_ that are publicly available. Status are just terms. They got no _public_ or _private_ property themselves. You _could_ disable a taxonomy with disabling the `query_var`... for whatever reason one would do that. Sidenote: [The plural of post status is...](http://unserkaiser.com/uncategorized/status-and-plural/).
- 0
- 2013-04-15
- kaiser
-
Se você rastrear o código (muitas vezesmaisfácil do que ler os docs,eu acho) vocêpode ver que 'WP_Query #get_posts () `chamadas`get_post_stati () `quefiltra` $ wp_post_statuses`para valoresem que'exclude_from_search 'é verdadeExcluiposts comestes [status] (https://www.google.com/search?q=define+statuses) da consulta.Há umprocesso semelhantepara ostipos depostagem quandopost_type é definido como 'qualquer'.If you trace through the code (often easier than reading the docs, I find) you can see that `WP_Query#get_posts()` calls `get_post_stati()` which filters `$wp_post_statuses` for values where `exclude_from_search` is true then it excludes posts with these [statuses](https://www.google.com/search?q=define+statuses) from the query. There's a similar process for post types when post_type is set to 'any'.
- 1
- 2013-04-16
- Tamlyn
-
@Tamlyn Depois de verificar o conteúdo dapropriedade `$ WP_Post_Statuses`,eutenho que admitir que vocêestá certo :)@Tamlyn After checking the contents of the `$wp_post_statuses` property, I have to admit that you're right :)
- 0
- 2013-04-16
- kaiser
-
nãofuncionapara o status de lixo.doesn't work for trash status.
- 0
- 2018-12-10
- Maxwell s.c
-
- 2019-08-28
Namaioria dos casos,vocêpode usar
get_posts()
com'any'
parâmetroparaeste:$posts = get_posts( array( 'numberposts' => -1, 'post_status' => 'any', 'post_type' => 'my-post-type', ) );
Mas destaforma vocênão obterápostagens com status
trash
eauto-draft
.Vocêprecisafornecer-lhesexplicitamente,assim:$posts = get_posts( array( 'numberposts' => -1, 'post_status' => 'any, trash, auto-draft', 'post_type' => 'my-post-type', ) );
ou vocêpode usar afunçãoget_post_stati ()parafornecertodos os statusexistentesexplicitamente:
$posts = get_posts( array( 'numberposts' => -1, 'post_status' => get_post_stati(), 'post_type' => 'my-post-type', ) );
In most cases you can use
get_posts()
with'any'
parameter for this:$posts = get_posts( array( 'numberposts' => -1, 'post_status' => 'any', 'post_type' => 'my-post-type', ) );
But this way you won't get posts with status
trash
andauto-draft
. You need to provide them explicitly, like this:$posts = get_posts( array( 'numberposts' => -1, 'post_status' => 'any, trash, auto-draft', 'post_type' => 'my-post-type', ) );
Or you can use get_post_stati() function to provide all existing statuses explicitly:
$posts = get_posts( array( 'numberposts' => -1, 'post_status' => get_post_stati(), 'post_type' => 'my-post-type', ) );
-
- 2019-03-28
Mesmo se vocêpassar
any
comopost_status
,você aindanão obterá opostno resultado Setodas as seguintes condiçõesforem verdadeiras:- .
- Um únicopostestá sendo consultado.Umexemplo disso seria consultadopor
name
,isto é a lesma. - Oposttem um status depostagem quenão épúblico.
- O clientenãopossui uma sessão de administrador ativo,ou seja,vocênãoestá logadonomomento.
solução
consulta explicitamente para cada status.Porexemplo,para consultar o stati quenão são
trash
ouauto-draft
(émuitoimprovável que você deseja aqueles),vocêpodefazer algo assim:$q = new WP_Query([ /* ... */ 'post_status' => get_post_stati(['exclude_from_search' => false]), ]);
Even if you pass
any
aspost_status
, you still will not get the post in the result if all of the following conditions are true:- A single post is being queried. An example of this would be querying by
name
, i.e. the slug. - The post has a post status that is not public.
- The client does not have an active admin session, i.e. you are not currently logged in.
Solution
Query explicitly for every status. For example, to query for stati which are not
trash
orauto-draft
(it's pretty unlikely that you want those), you could do something like this:$q = new WP_Query([ /* ... */ 'post_status' => get_post_stati(['exclude_from_search' => false]), ]);
Euestou criando umpainel defrontend,ondeeuprecisomostrartodas aspostagens do usuário atual.Assim,precisomostrarpostsem todos osestados,principalmente
Alguémpode ajudar?O quemaiseuprecisofazer?published
,trashed
e opending
.Agoraestou usando uma consulta simples,masestá retornando apenas ospostspublicados.