2012-01-07 1 views
1

그래서 뭔가를 덮어 쓰고 있다고 가정하지만이 중지하고 루프 외부의 모든 값을 검색하는 방법을 잘 모르겠습니다. 어떤 아이디어?foreach 루프 바깥에있는 var에 저장된 모든 값을 반환하십시오.

$checkmissing = array(); 

그런 다음 foreach 내에서 해당 배열에 포스트 용어의 첫 번째 항목을 추가 : 모든

foreach($gallids as $gallterm) 
{ 
    $postterms = wp_get_post_terms($gallterm, 'type', array("fields" => "slugs")); 

    $checkmissing = $postterms[0];     
    print_r($checkmissing); // Check Terms for missing images - works here. 
} 

print_r($checkmissing); // Check Terms for missing images - not working here 
         // - seems to be getting last or first val only. 
+0

배열을 checkmissing $을 만들거나 사용 $의 checkmissing 하나를 = $ postterms [0]; 각 postterms 값을 문자열 ... 또는 $ checkmissing. = ','에 연결합니다. $ postterms [0]; 쉼표로 구분 된 문자열 인 경우 –

답변

4

먼저 당신이 나중에 사용할 변수를 초기화

foreach($gallids as $gallterm) 
{ 
    list($checkmissing[]) = wp_get_post_terms($gallterm, 'type', array("fields" => "slugs")); 
} 

$checkmissing[]을 참조하십시오. 그러면 효과적으로 덮어 쓰지 못하게됩니다. 은 배열에 각각이 붙습니다.

마지막으로 할 수있는 결과 루프 후 출력 :

print_r($checkmissing); 

참고 :wp_get_post_terms는 하늘의 배열을 반환하는 경우 당신은 몇 가지 추가 처리를 수행해야합니다

foreach($gallids as $gallterm) 
{ 
    $terms = wp_get_post_terms($gallterm, 'type', array("fields" => "slugs")) 
     AND list($checkmissing[]) = $terms 
    ; 
} 
+0

빙고. 감사합니다 @hakre – user1134561

0
$checkmissing = array(); 

foreach($gallids as $gallterm) 
{ 
    $postterms = wp_get_post_terms($gallterm, 'type', array("fields" => "slugs")); 

    $checkmissing[] = $postterms[0];     
    print_r($checkmissing); // Check Terms for missing images - works here. 
} 

print_r($checkmissing); // Check Terms for missing images 
         // will get all missing images as array 
0
foreach($gallids as $gallterm) { 

     $postterms = wp_get_post_terms($gallterm, 'type', array("fields" => "slugs")); 
     $checkmissing[] = $postterms[0]; 
    } 

    print_r($checkmissing); //Now this will be a 2d array with all your values.. 
0
$checkmissing = array(); 
    $i=1; 
    foreach($gallids as $gallterm) 
    { 
     $postterms = wp_get_post_terms($gallterm, 'type', array("fields" => "slugs")); 

     $checkmissing[$i] = $postterms[0];     
     //print_r($checkmissing); // Check Terms for missing images - works here. 
    $i++; 
    } 

    print_r($checkmissing); 
0

나는 노력을 위의 예제 중 몇 가지는 내가 원하는대로 작동하지 않았습니다. 그래서 나는 주위를 샅샅이 조사하고 약간의 연구를했습니다.

필자는 특정 게시물에 대한 모든 범주 ID를 가져와 해당 변수를 WP_Query 인수 배열로 반환해야했습니다. 당신은 당신이 나중에 사용할 변수를 초기화 할 수 있습니다

$terms = get_the_terms($post->ID, 'category'); 

다음

첫째, 당신은 포스트 용어를 잡아해야합니다

$cat_terms = array(); 

다음으로 선언 것을 각각의 용어 ID

foreach ($terms as $term) { 
    $cat_terms[] = $term->term_id; 
} 
이제

의는 별도의 쉼표를 돌려 사용하고 싶은 말은하자를 얻을 수 foreach는 d $ cat_terms 변수를 나열합니다. 우리는 이제 당신이 'category__in'매개 변수 말을 당신에 WP_Query 루프를 넣어이 변수를 사용하고 싶은 말은하자 '조인'기능을

$comma_separated_terms = join(", ", $cat_terms); 

을 사용하는 것입니다. 우리는 'array_values'를 사용할 것입니다.

$values = array_values($cat_terms); 

이의 좋은 점은 지금 우리가 WP_Query 인수로이 $이 값 변수를 삽입 할 수있다 :

<?php global $post; 
     $query = new WP_Query(array(
      'post_type' => 'post_type_name', 
      'category__in' => $values)); 
?> 

내 특정 경우, 클라이언트는 사이드 바에 표시하는 일부 사용자 지정 게시 유형 원 블로그 게시물 카테고리를 기반으로합니다. 그래서 나는 모든 블로그 게시물 용어를 가져 와서 사용자 정의 게시물 유형 카테고리에 대한 용어와 일치시켜야했습니다.

최종 코드는 다음과 같이 보았다 :.

<?php 
    $terms = get_the_terms($post->ID, 'category'); 

    $cat_terms = array(); 

    foreach ($terms as $term) { 
     $cat_terms[] = $term->term_id; 
    } 

    $values = array_values($cat_terms); 
?> 
    <h3><?php echo $title; ?></h3> 

    <?php global $post; 
     $query = new WP_Query(array(
      'post_type' => 'custom_post_type', 
      'category__in' => $values)); 

      if ($query->have_posts()) : ?> 

       <?php while ($query->have_posts()) : $query->the_post(); ?> 

       // Code for loop goes here 

       <?php endwhile; endif; ?> 

      <?php wp_reset_postdata(); ?>