Come ottenere tutti i post con qualsiasi stato del post?
-
-
Haiprovato a utilizzareil [parametro `post_status`] (http://codex.wordpress.org/Function_Reference/WP_Query#Type_.26_Status_Parameters),ades.`'post_status'=> 'any'`?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
-
*** Consiglio vivamente *** di usare `WP_Query``pre_get_posts` o `get_posts`invece di` query_posts`.Non usaremai "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:eramoltotempofa :) Io uso WP_Query lamaggiorparte delle volte ora ..@TomJNowell: that was way back :) I use WP_Query most ofter now..
- 0
- 2013-04-17
- Sisir
-
@Sisir stai attento,usa `WP_Query`perilfront-ende`get_posts`per le query di amministrazionepoiché c'è unproblema con `wp_reset_postdata` (vedi la [nota] (https://codex.wordpress.org/Class_Reference/WP_Query#Interacting_with_WP_Query)e [ticket] (https://core.trac.wordpress.org/ticket/18408) su questoproblema).@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 risposta
- voti
-
- 2011-03-30
Puoi utilizzareilparametropost_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.
Non sono sicuro che accetti "any",quindi utilizza un array contuttigli stati che desideri:
$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();
-
Puoi anche usare `get_post_stati ()`per otteneretuttigli stati,inclusi quellipersonalizzati.You could also use `get_post_stati()` to get all statuses, including custom ones.
- 8
- 2013-01-31
- fuxia
-
Un'opportunità sprecataper uccidere una chiamata `query_posts` ...A wasted opportunity to kill off a `query_posts` call...
- 5
- 2013-04-16
- Tom J Nowell
-
peccato chenonpossiamofare qualcosa di simile `'post_status'=> array ('!inherit');` (perindicare qualsiasipost_status diverso dainherit)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
-
@aequalsb che dire di `'post_status'=> array_diff (get_post_stati (),['inherit']);`@aequalsb what about `'post_status' => array_diff(get_post_stati(), ['inherit']);`
- 0
- 2018-10-29
- Cheslab
-
fuoritema."any" è una cosa realein realtà.Documenti: https://developer.wordpress.org/reference/classes/wp_query/#post-type-parametersoff-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
C'è unmodo sempliceper otteneretuttii post con qualsiasi stato:
$articles = get_posts( array( 'numberposts' => -1, 'post_status' => 'any', 'post_type' => get_post_types('', 'names'), ) );
Orapuoi scorreretuttii post:
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; //... }
-
** $poste $post sonoin conflitto coni nomi delle variabili di Wordpress **.Se stai usando questo codiceperinserire qualcosa di diverso dal divprincipale (contenutoprincipale),questo sovrascriverà ciò che sarebbe statomostratoin main.Se latuaintenzione è davvero quella di sostituire completamentei risultati della query originale,questo è quello che vuoi,ovviamente.Ma è comunque unabuonaidea rinominare le variabili $poste $post.**$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
-
@Henriknonintendominimizzareiltuo commento (latua logica è solidae sicura),ma considero l'utilizzo di $post/$posts comeperfettamente accettabile all'interno di unafunzione senza accesso alle variabiliglobali $post/$posts -perchémi aiuta amantenere la logica durante lo sviluppo.@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
Ilmetodo di classe
WP_Query
->query()
accetta un argomentoany
perpost_status
.Vediwp_get_associated_nav_menu_items()
per unaprova.Lo stesso valeper
get_posts()
(che è solo un wrapperper la chiamataprecedente).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).-
Dai documenti di WP_Query: _'any '- recupera qualsiasi statotranne quelli daitipi dipost con'exclude_from_search 'impostato sutrue._ (C'è unerrore dibattitura lì,in realtà significanogli stati delpostinvece deitipi dipost.) Ciò significa chegli stati `auto-draft`e `trash` sonoesclusi.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,questonon è unerrore dibattitura._ Recupera qualsiasi stato daitipi dipost_ che sono disponibilipubblicamente.Lo stato sono solotermini.Non hanno alcunaproprietà _pubblica_ o _privata_._Potresti_ disabilitare unatassonomia disabilitando `query_var` ...per qualsiasimotivo lofarebbe.Nota amargine: [Ilplurale dello stato delpost è ...] (http://unserkaiser.com/uncategorized/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 rintracciil codice (spessopiùfacile che leggerei documenti,trovo)puoi vedere che `WP_Query #get_posts ()` chiama `get_post_stati ()` chefiltra `$ wp_post_statuses`per valoriin cui`exclude_from_search` è vero alloraescludei post con questi [stati] (https://www.google.com/search?q=define+statuses) dalla query.Esiste unprocesso simileperi tipi dipost quandopost_type èimpostato su "any".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 Dopo aver controllatoil contenuto dellaproprietà `$ wp_post_statuses`,devo ammettere che hai ragione :)@Tamlyn After checking the contents of the `$wp_post_statuses` property, I have to admit that you're right :)
- 0
- 2013-04-16
- kaiser
-
nonfunzionaper lo stato del cestino.doesn't work for trash status.
- 0
- 2018-12-10
- Maxwell s.c
-
- 2019-08-28
Nellamaggiorparte dei casipuoi utilizzare
get_posts()
conilparametro'any'
per questo:$posts = get_posts( array( 'numberposts' => -1, 'post_status' => 'any', 'post_type' => 'my-post-type', ) );
Main questomodonon otterraipost con lo stato
trash
eauto-draft
.Devifornirliesplicitamente,in questomodo:$posts = get_posts( array( 'numberposts' => -1, 'post_status' => 'any, trash, auto-draft', 'post_type' => 'my-post-type', ) );
Oppurepuoi usare lafunzioneget_post_stati ()perfornireesplicitamentetuttigli statiesistenti:
$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
Anche sepassi
any
comepost_status
, continua anon ricevereilpostnel risultato setutte le seguenti condizioni sono vere:- Viene richiesto un singolopost.Unesempio di ciòpotrebbeessere l'interrogazioneper
name
,ovvero lo slug. - Ilpost ha uno stato dipost chenon èpubblico.
- Il clientnon ha una sessione amministrativa attiva,ovveronon sei attualmente connesso.
Soluzione
Query esplicitamente per ogni stato.Adesempio,per cercare stati chenon sono
trash
oauto-draft
(èpiuttostoimprobabile chetu li voglia),potrestifare qualcosa delgenere:$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]), ]);
Sto creando una dashboardfront-endin cui devomostraretuttii post dell'utente corrente.Quindi,devomostrarei postin tuttigli stati,principalmente
published
,trashed
epending
.Ora sto usando una semplice queryma restituisce soloi postpubblicati.Qualcunopuò aiutare?Cos'altro devofare?