Получать сообщения по мета-значению

Я хотел бы перечислить все сообщения, у которых есть ключ cp_annonceur со значением professionnel .

Solutions Collecting From Web of "Получать сообщения по мета-значению"

То, что вы просите, это meta_query

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

Вся необходимая информация содержится в Codex .

Это можно сделать двумя способами:

  1. Перехватите основной запрос на 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. Добавить дополнительный запрос

     $second_loop = get_posts( array( 'meta_key' => 'cp_annonceur', 'meta_value' => 'professionnel', ) ); 

Я использовал выборочный выбор (может быть, более высокая производительность)

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

Вдохновленный от https://tommcfarlin.com/get-post-id-by-meta-value/

Мы можем получить желаемый результат с помощью Meta-запроса 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 ); 

Для получения более подробного руководства относительно мета-запроса следуйте этому блогу: http://www.codecanal.com/get-posts-meta-values/