Добавить элементы в массив для использования в другом массиве - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть следующий код:

query_posts( array(
   "tax_query" => array(
      array(
         "taxonomy" => "country",
         "field" => "slug",
         "terms" => array( "usa", "canada" )
      )
   )
) );

У меня также есть цикл выше, чтобы идентифицировать все «термины», подобные этому:

$term_list = get_the_terms($post->ID,$taxonomy);
    foreach($term_list as $term_single) {
        echo $term_single->slug; //do something here
    }

Я хотел бы динамическизамените "сша" и "канада" результатами моего цикла foreach.Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 02 апреля 2019

Без foreach Петля

$term_list = get_the_terms($post->ID,$taxonomy);

query_posts( array(
   "tax_query" => array(
      array(
         "taxonomy" => "country",
         "field" => "slug",
         "terms" => $term_list
      )
   )
) );

С foreach петля

$term_list = get_the_terms($post->ID,$taxonomy);

foreach($term_list as $term_single) {
        $cat_terms[] = $term_single;
}
query_posts( array(
   "tax_query" => array(
      array(
         "taxonomy" => "country",
         "field" => "slug",
         "terms" => $cat_terms
      )
   )
) );
0 голосов
/ 02 апреля 2019

Я создал 3 массива, затем заполнил каждый и вставил в другой.

      //for loop, store the values that you want
      $subArray2 = array();
      for($row = 0;$row < 3;$row++){
          $subArray2[$row] = "Value_$row";
      }

      $subArray1 = array("taxonomy" => "country","field" => "slug","terms" => $subArray2);

      $arr = array("tax_query" => $subArray1);

      //var_dump($arr);

      foreach($arr as $val){
         foreach($val as $val1){
            if(is_array($val1)){
               foreach($val1 as $val2){
                  echo "$val2<br>";
               }
            }else{
               echo $val1 . "<br>";
            }
         }
      }
0 голосов
/ 02 апреля 2019

Вы должны сделать что-то подобное

function getTermsForQuery($post) {
    $result = [];
    $term_list = get_the_terms($post->ID,$taxonomy);
    foreach($term_list as $term_single) {
        $result[] =  $term_single->slug; //do something here
    }
    return $result;
}

query_posts( array(
   "tax_query" => array(
      array(
         "taxonomy" => "country",
         "field" => "slug",
         "terms" => getTermsForQuery($post)
      )
   )
) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...