Comment obtenir tous les messages avec n'importe quel statut de message?
-
-
Avez-vousessayé d'utiliser leparamètre [`post_status`] (http://codex.wordpress.org/Function_Reference/WP_Query#Type_.26_Status_Parameters),c'est-à-dire.`'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
-
Je ***fortement *** recommande d'utiliser `WP_Query``pre_get_posts` ou `get_posts` au lieu de` query_posts`.N'utilisezjamais `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: c'étaitil y a longtemps :) J'utilise WP_Query laplupart dutempsmaintenant ..@TomJNowell: that was way back :) I use WP_Query most ofter now..
- 0
- 2013-04-17
- Sisir
-
@Sisir soyezprudent,utilisez `WP_Query`pour lefront-endet`get_posts`pour les requêtes d'administration caril y a unproblème avec `wp_reset_postdata` (voir la [note] (https://codex.wordpress.org/Class_Reference/WP_Query#Interacting_with_WP_Query)et [ticket] (https://core.trac.wordpress.org/ticket/18408) sur ceproblème).@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 réponses
- votes
-
- 2011-03-30
Vouspouvez utiliser leparamètrepost_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.
Jene suispas sûr qu'il accepte 'any' alors utilisez untableau avectous les statuts que vous voulez:
$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();
-
Vouspouvez également utiliser `get_post_stati ()`pour obtenirtous les statuts,y compris ceuxpersonnalisés.You could also use `get_post_stati()` to get all statuses, including custom ones.
- 8
- 2013-01-31
- fuxia
-
Une occasionmanquée detuer un appel `query_posts` ...A wasted opportunity to kill off a `query_posts` call...
- 5
- 2013-04-16
- Tom J Nowell
-
dommage quenousne puissionspasfaire quelque chose comme ça ``post_status '=> array ('!inherit '); `(pourindiquertoutpost_status autre queinherit)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 qu'enest-il de `` 'post_status'=> array_diff (get_post_stati (),['inherit']); `@aequalsb what about `'post_status' => array_diff(get_post_stati(), ['inherit']);`
- 0
- 2018-10-29
- Cheslab
-
hors sujet.«tout»esten fait une chose réelle.Documents: 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
Ilexiste unmoyen simple,comment obtenirtous lesmessages avecn'importe quel statut:
$articles = get_posts( array( 'numberposts' => -1, 'post_status' => 'any', 'post_type' => get_post_types('', 'names'), ) );
Vouspouvez désormaisparcourirtous les articles:
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; //... }
-
** $postset $post conflit avec lespropresnoms de variables de Wordpress **.Si vous utilisez ce codepourmettre quelque chose d'autre que le divprincipal (contenuprincipal),cela écrasera ce qui aurait été affiché dansmain.Si votreintentionest vraiment de remplacer complètement les résultats de la requête d'origine,c'estbien entendu ce que vous voulez.Mais c'esttoujours unebonneidée de renommer les variables $postset $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
-
@Henrik Jen'aipas l'intention de diminuer dutout votre commentaire (votre logiqueest saineet sûre),maisj'envisage d'utiliser $post/$posts commeparfaitement acceptable dans unefonction sans accès aux variablesglobales $post/$posts - carcelam'aide àmaintenir la logiquependant le développement.@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
Laméthode de classe
WP_Query
->query()
accepte un argumentany
pourpost_status
.Voirwp_get_associated_nav_menu_items()
pour unepreuve.Ilen va demêmepour
get_posts()
(quin'est qu'un wrapperpour l'appel ci-dessus).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).-
Àpartir de la documentation WP_Query: _'any '- récupèretous les statuts sauf ceux destypes depublication avec'exclude_from_search 'défini surtrue._ (Il y a unefaute defrappeici,ils signifienten fait des statuts depublication au lieu detypes depublication.) Cela signifie les statuts `auto-draft »et«trash »sontexclus.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,cen'estpas unefaute defrappe.Il _ récupèretout état destypes depublication_ qui sont accessibles aupublic.Les statutsne sont que destermes.Ilsn'onteux-mêmes aucunepropriété _public_ ou _private_.Vous _pourriez_ désactiver unetaxonomieen désactivant la `query_var` ...pour quelque raison que ce soit.Note debas depage: [Lepluriel de l'état dumessageest ...] (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
-
Si vous suivez le code (souventplusfacile que de lire la documentation,je trouve) vouspouvez voir que `WP_Query #get_posts ()` appelle `get_post_stati ()` quifiltre `$ wp_post_statuses`pour les valeurs où`exclude_from_search`est vraiexclut lesposts avec ces [statuts] (https://www.google.com/search?q=define+statuses) de la requête.Ilexiste unprocessus similairepour lestypes depublication lorsquepost_typeest défini sur «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 Après avoir vérifié le contenu de lapropriété `$ wp_post_statuses`,je dois admettre que vous avez raison :)@Tamlyn After checking the contents of the `$wp_post_statuses` property, I have to admit that you're right :)
- 0
- 2013-04-16
- kaiser
-
nefonctionnepaspour l'état de la corbeille.doesn't work for trash status.
- 0
- 2018-12-10
- Maxwell s.c
-
- 2019-08-28
Dans laplupart des cas,vouspouvez utiliser
get_posts()
avec'any'
paramètrepour cela:$posts = get_posts( array( 'numberposts' => -1, 'post_status' => 'any', 'post_type' => 'my-post-type', ) );
Mais de cettefaçon,vousn'obtiendrezpas lesmessages avec le statut
trash
etauto-draft
.Vous devez lesfournirexplicitement,comme ceci:$posts = get_posts( array( 'numberposts' => -1, 'post_status' => 'any, trash, auto-draft', 'post_type' => 'my-post-type', ) );
Ou vouspouvez utiliser lafonctionget_post_stati ()pourfournirexplicitementtous les statutsexistants:
$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
Même si voustransmettez
any
en tant quepost_status
,vous n'obtiendratoujourspas lemessage dans le résultat sitoutes les conditions suivantes sont remplies:- Un seulmessageestinterrogé.Unexemple de ceci serait la requêtepar
name
,c'est-à-dire le slug. - Lemessage a un statut quin'estpaspublic.
- Le clientn'apas de session d'administration active,c'est-à-dire que vousn'êtespas actuellement connecté.
Solution
Interrogez explicitement pour chaque état.Parexemple,pour rechercher des stati quine sontpas
trash
ouauto-draft
(ilestpeuprobable que vous les vouliez),vouspouvezfaire quelque chose comme ceci:$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]), ]);
Je crée untableau debordfrontal dans lequelje dois affichertous lesmessages de l'utilisateur actuel.Donc,j'aibesoin d'afficher les articles danstous les états,principalement
published
,trashed
et lespending
.J'utilisemaintenant une requête simplemaisellene renvoie que les articlespubliés.Quelqu'unpeut-il aider?Que dois-jefaire d'autre?