Получить сообщение в соответствии с текущей таксономией

Спасибо за любую помощь.

Я нахожусь в специальном сообщении (а не в архиве) с таксономией. И я хотел бы показать:

  • некоторые другие пользовательские сообщения
  • с нынешней таксономией

Кажется, это не так сложно, но для меня это … Я не нашел правильный способ использовать термин моего налога в запросе …

Вот одна из моих попыток:

 $ terms = wp_get_post_terms ($ post-> ID, 'identite');  // чтобы получить мою таксономию

 foreach ($ terms as $ term) {
 echo "$ term-> slug";  // просто для теста - нормально

    $ args = array (
     'post_type' => 'example',
     'tax_query' => массив (
         'отношение' => 'AND',
         массив (
             'таксономия' => 'identite',
             'field' => 'ID',
             'terms' => $ terms
              )
         ),
      ); // end args

 $ query = new WP_Query ($ args);

 if ($ query-> has_posts ()) {
     while ($ query-> have_posts ()) {
          $ Query-> the_post ();

        // Маленькая молитва, но не работает

     } // конец while

 }

Я получаю это сообщение об ошибке: Объект класса WP_Term не может быть преобразован в int в

Любая идея конвертировать мой объект и сделать его доступным для чтения? большое спасибо

(edit: Я пытаюсь с функцией wp_list_pluck, но без успеха)

Попробуйте это для WP_Query

 $args = array( 'post_type' => 'example', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'identite', 'field' => 'ID', 'terms' => $term->term_id ) ), );// end args 

ИЛИ

 $args = array( 'post_type' => 'example', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'identite', 'field' => 'ID', 'terms' => array($term->term_id) ) ), );// end args 

$term – объект, а tax_query ожидает массив id.

См. https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

Вы получаете это сообщение об ошибке из-за того, как вы настраиваете массив $args . В tax_query вам нужно передать массив всех терминов ids для текущего сообщения. Кроме того, значение field было неверным (как показано в Codex здесь: WP_Query # Taxonomy_Parameters ).

Окончательный код должен выглядеть примерно так:

 <?php $terms = wp_get_post_terms( $post->ID, 'identite'); $terms_ids = []; foreach ( $terms as $term ) { $terms_ids[] = $term->term_id; } $args = array( 'post_type' => 'example', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'identite', 'field' => 'term_id', 'terms' => $terms_ids ) ), ); $query = new WP_Query($args); if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); // All the magic here } }