Récupérer les messages par valeur méta
-
-
Veuilleznoter que [vous devez avoir recherché leproblèmeet tenté de le résoudre avant depublier une question.] (Http://wordpress.stackexchange.com/questions/how-to-ask) Si vousn’aviezpas éténouveauici,j'auraisprobablement voté à labaisse sur la questionet passer à autre chose,plutôt que d'y répondre.Dans l'esprit de "Welcometothe Stack",c'est votre abeille libre.Veuillezjeter un œil à [demander]pour defutures questions.Please be aware that [you are expected to have researched the problem and made an attempt at solving it before posting a question.](http://wordpress.stackexchange.com/questions/how-to-ask) Had you not been brand new here I would have probably down-voted the question and moved on, rather than answer it. In the spirit of "Welcome to the Stack" this is your free-bee. Please take a look at [ask] for future questions.
- 8
- 2014-05-11
- s_ha_dum
-
Celui-cim'afaitperdre dutemps à cause de la réponsenon acceptée ci-dessous.Alorsje laisseicimes 2 cents.Iln'ajamais répondu,ni accepté la réponse ci-dessous.Pourquoine supprimez-vouspas simplement ces questions alors qu'il y a des dizaines de questions similairesici?This one just made me lose some time because of the not accepted answer below. So I'm leaving here my 2 cents. He never answered, nor accepted the answer below. Why don't you just remove this questions while there are dozens of similar questions around here?
- 0
- 2019-07-21
- mircobabini
-
4 réponses
- votes
-
- 2014-05-11
Ce que vous demandezest une
meta_query
$args = array( 'meta_query' => array( array( 'key' => 'cp_annonceur', 'value' => 'professionnel', 'compare' => '=', ) ) ); $query = new WP_Query($args);
Toutes lesinformations dont vous avezbesoin setrouvent dans le Codex .
What you are asking for is a
meta_query
$args = array( 'meta_query' => array( array( 'key' => 'cp_annonceur', 'value' => 'professionnel', 'compare' => '=', ) ) ); $query = new WP_Query($args);
-
@Beginner: si cela a résolu leproblème,veuillez lemarquer "Accepté".Recherchez la coche à côté desflèches de vote sur lagauche.@Beginner : if this solved the problem please mark it "Accepted". Look for the check mark near the vote arrows on the left.
- 3
- 2014-05-11
- s_ha_dum
-
Pour une raison quelconque,utiliser `new WP_Query ($ args)`puis appeler `get_posts`ne fonctionnepaspourmoi.Passer directement letableau `$ args` à lafonction`get_posts` comme argumentfonctionne cependant.For some reason using `new WP_Query($args)` and then calling `get_posts` doesn't work for me. Directly passing the `$args` array to the `get_posts` function as an argument works however.
- 0
- 2020-05-05
- Kunal
-
- 2014-05-11
Ilexiste deuxfaçons deprocéder:
-
Intercepter la requêteprincipale sur
pre_get_posts
:add_action( 'pre_get_posts', function( $query ) { // only handle the main query if ( ! $query->is_main_query() ) return; $query->set( 'meta_key', 'cp_annonceur' ); $query->set( 'meta_value', 'professionnel' ); } );
-
Ajouter une requête supplémentaire
$second_loop = get_posts( array( 'meta_key' => 'cp_annonceur', 'meta_value' => 'professionnel', ) );
Unexempleplus détaillépeut êtretrouvé dans cette réponse .
There are two ways to do that:
Intercept the main query on
pre_get_posts
:add_action( 'pre_get_posts', function( $query ) { // only handle the main query if ( ! $query->is_main_query() ) return; $query->set( 'meta_key', 'cp_annonceur' ); $query->set( 'meta_value', 'professionnel' ); } );
Add an additional query
$second_loop = get_posts( array( 'meta_key' => 'cp_annonceur', 'meta_value' => 'professionnel', ) );
A more throughout example can be found in this answer.
-
C'estbien de connaître le chemin court avecget_posts ()Nice to know the short way with get_posts()
- 2
- 2017-01-26
- Andrew Welch
-
Commentfaites-vous cela avecplusieursméta clés/valeurs?How do you do this with multiple meta ket/values ?
- 0
- 2020-04-09
- G-J
-
@ G-J,vous voudrezpeut-êtrejeter un coup d'œil à [cetexemple] (https://wordpress.stackexchange.com/a/105705/385).@G-J you might want to take a look at [this example](https://wordpress.stackexchange.com/a/105705/385).
- 0
- 2020-04-15
- kaiser
-
- 2016-01-28
J'ai utilisé la sélectionpersonnalisée (peut-être demeilleuresperformances)
$posts = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = 'cp_annonceur' AND meta_value = 'professionnel' LIMIT 1", ARRAY_A);
Inspiré de https://tommcfarlin.com/get-post-id-par-méta-valeur/
I used custom select (might be better performance)
$posts = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = 'cp_annonceur' AND meta_value = 'professionnel' LIMIT 1", ARRAY_A);
Inspired from https://tommcfarlin.com/get-post-id-by-meta-value/
-
Ilpeut avoir demeilleuresperformances,mais celajette touteidée d'avoir desfonctions Wordpresspour rechercher (etmettreen cache) les données.Et,aussi,que sepassera-t-il si WP décide de changer la structure de latable?:)It might have better performances, but it throws away the whole idea of having Wordpress functions to search (and cache) data. And, also, what will happen if WP decides to change the table structure? :)
- 3
- 2017-03-03
- Erenor Paz
-
@ErenorPaz Je comprends ce que vous dites,mais cetteméthode vousfaciliterait latâche si vous aviezplusieursméta clés/valeurs comme critère ... Existe-t-il unmoyen officiel degérerplusieurs critères?@ErenorPaz I understand what you are saying but this way would make it easy if you had multiple meta key/values as a criteria... Is there an official way to handle multiple criteria?
- 0
- 2020-04-09
- G-J
-
Vous voulez dire quelque chose comme `WHEREmetatable1.meta_key='cp_annonceur' ANDmetatable1.meta_value='professionnel' ANDmetatable2.meta_key='cp_other_meta' ANDmetatable2.meta_value='other_value'`?(Notez queje suppose quenousfaisons unejointure sur lamêmetableposts_metaen utilisant deuxnoms «metatable1»et «metatable2»).Celapeut être réaliséen ajoutant le champ `meta_query` (sousforme detableau) à la requête.Jetez un œil à: https://developer.wordpress.org/reference/classes/wp_query/#order-orderby-parameterset allez auparagraphe "" orderby "avecplusieurs"meta_key "You mean something like `WHERE metatable1.meta_key = 'cp_annonceur' AND metatable1.meta_value = 'professionnel' AND metatable2.meta_key = 'cp_other_meta' AND metatable2.meta_value = 'other_value'`? (Note that i suppose we do a join on the same posts_meta table using two names `metatable1` and `metatable2`). This can be achieved adding field `meta_query` (as an array) to the query. Take a look at: https://developer.wordpress.org/reference/classes/wp_query/#order-orderby-parameters and go to paragraph "‘orderby’ with multiple ‘meta_key’s"
- 0
- 2020-04-10
- Erenor Paz
-
- 2017-10-04
Nouspouvons obtenir le résultat souhaité avec laméta-requête de WordPress:
// the meta_key 'diplay_on_homepage' with the meta_value 'true' $cc_args = array( 'posts_per_page' => -1, 'post_type' => 'post', 'meta_key' => 'cp_annonceur', 'meta_value' => 'professionnel' ); $cc_query = new WP_Query( $cc_args );
Pour unguideplus détaillé concernant lesméta-requêtes,suivez ceblog: http://www.codecanal.com/get-posts-meta-values/
We can get the desired result with Meta query of the WordPress :
// the meta_key 'diplay_on_homepage' with the meta_value 'true' $cc_args = array( 'posts_per_page' => -1, 'post_type' => 'post', 'meta_key' => 'cp_annonceur', 'meta_value' => 'professionnel' ); $cc_query = new WP_Query( $cc_args );
For more detailed guide regarding meta query follow this blog : http://www.codecanal.com/get-posts-meta-values/
-
Puis-je savoirpourquoi cette valeur de `post_per_page`est -1?May i know why this `post_per_page` value is -1?
- 0
- 2018-04-27
- Abhay
-
@AbhayGawade Vouspouvez limiter lenombremaximum de résultatsen utilisant ceparamètre,-1 signifiepas de limite.@AbhayGawade You can limit max number of results using that parameter, -1 means no limit.
- 1
- 2018-06-20
- Kush
Je voudrais listertous les articles qui ont une clé de
cp_annonceur
avec la valeurprofessionnel
.