Obtenir les messages par méta-valeur

17

Je souhaite répertorier tous les articles ayant une clé de cp_annonceur avec la valeur professionnel .

    
posée Beginner 11.05.2014 - 21:56

4 réponses

36

Ce que vous demandez, c'est un meta_query

$args = array(
   'meta_query' => array(
       array(
           'key' => 'cp_annonceur',
           'value' => 'professionnel',
           'compare' => '=',
       )
   )
);
$query = new WP_Query($args);

Toutes les informations dont vous avez besoin se trouvent dans le Codex .

    
réponse donnée s_ha_dum 11.05.2014 - 22:05
7

Il y a deux façons de faire cela:

  1. Intercepter la requête principale 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' );
    } );
    
  2. Ajouter une requête supplémentaire

    $second_loop = get_posts( array(
        'meta_key'   => 'cp_annonceur',
        'meta_value' => 'professionnel',
    ) );
    
réponse donnée kaiser 11.05.2014 - 22:08
4

J'ai utilisé la sélection personnalisée (les performances pourraient être meilleures)

$posts = $wpdb->get_results("SELECT * FROM $wpdb->postmeta
WHERE meta_key = 'cp_annonceur' AND  meta_value = 'professionnel' LIMIT 1", ARRAY_A);

Inspiré de enlace

    
réponse donnée michalzuber 28.01.2016 - 15:40
0

Nous pouvons obtenir le résultat souhaité avec la méta-requête du 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 un guide plus détaillé sur les méta-requêtes, suivez ce blog: enlace

    
réponse donnée Jitendra Damor 04.10.2017 - 07:46

Lire d'autres questions sur les étiquettes