2017-12-26 6 views
2

저는 Wordpress 카테고리를 사용하여 도시별로 회사 카탈로그를 만듭니다. 카테고리는 도시입니다. 사용자 지정 필드는 도시가 포함 된 영역입니다. 사용하는 사용자 정의 필드에 대한 - Advanced Custom Fields 빌드 정의 taxanomy 순서에 대한 사용 - WP Term Order사용자 정의 필드 (완료)에 의해 Wordpress 카테고리 순서. 한 번만 사용자 정의 필드를 출력하는 방법

$terms = get_terms('catalog_categories', array(
    'depth'  => 1, 
    'number'  => 100, 
    'parent'  => 0, 
    'orderby' => 'taxon_name', // order array name 
    'order'  => 'DESC', 
    'hide_empty' => false, 
    'meta_query' => array(
     'taxon_name' => array(
      'key' => 'taxon' // acf custom field name 
     )) 
)); 

foreach ($terms as $key => $object) { 
    $region = get_field('taxon', $object); 
    echo $region . ' ' . $object->name . '<br>'; 
} 

내가 받아 봐 :
비엘 코폴 스키 포즈 난에게
비엘 코폴 스키 Bojanowo
돌 노실 롱 스키 브로츠와프
Mazoweckie 바르샤바를
돌 노실 롱 스키 야 보르


하지만 난이 필요합니다
비엘 코폴 스키
- 포즈 난
에게 - Bojanowo
Mazoweckie
- 바르샤바
돌 노실 롱 스키
- 브로츠와프을
-이 문제의 결정에 야 보르는

도와주세요
UPDATE
* 코드 에 워드 프레스 카테고리에 대한 링크 (슬러그)를 추가하십시오 도움말 여기에 우리가 수집하는 모든 한 지역의 도시 :
$ collection [$ region] [] = $ object-> name;
우리는 각 도시에 슬러그를 추가해야합니다.
$ object-> slug;
슬러그는 옵션 값으로 사용해야합니다.

'<option value="' . **SLUG** . '" data-select2-id="'. $data_select_id . '-' .$i .'">' . $city . '</option>'; 


UPDATE : 우리는 추가
코드 작업을
* - $ 수집 [$ 지역] [] = $ 개체 -> 이름을; - $ object-> slug 그리고 그것들을 배열로 합친 것
$ collection [$ region] [] = array ('name'=> $ object-> name, 'slug'=> $ object-> slug);
그리고 우리가 사용하는 출력 - $ 도시 [ '이름']와 $ 도시 [ '슬러그']

<?php 
$terms = get_terms('catalog_categories', array(
    'depth'  => 1, 
    'number'  => 100, 
    'parent'  => 0, 
    'orderby' => 'taxon_name', // order array name 
    'order'  => 'DESC', 
    'hide_empty' => false, 
    'meta_query' => array(
     'taxon_name' => array(
      'key' => 'taxon' // acf custom field name 
     )) 
)); 

$collection = []; 
foreach ($terms as $key => $object) { 
    $region = get_field('taxon', $object); 

    if (!isset($collection[$region])) { 
     $collection[$region] = []; 
    } 

    $collection[$region][] = array('name' => $object->name, 'slug' => $object->slug); 
} 

$data_select_id = 1; 
echo '<div>'; 
    foreach ($collection as $region => $cities) { 

     $i = 0; 

     echo '<div label="' . $region . '" data-select2-id="' . $data_select_id . '">'. $region; 
      foreach ($cities as $city) { 
       $i++; 
       echo '<option value="' . $city['slug'] . '" data-select2-id="'. $data_select_id . '-' .$i .'">' . $city['name'] . '</option>'; 
      } 
     echo '</div>'; 

     $data_select_id ++; 

    } 
echo '</div>'; 
;?> 

답변

1

이 같은 지역에 도시 분류하는 추가 배열을 사용할 수 있습니다

$collection = []; 
foreach ($terms as $key => $object) { 
    $region = get_field('taxon', $object); 

    if (!isset($collection[$region])) { 
     $collection[$region] = []; 
    } 

    $collection[$region][] = $object->name; 
} 

foreach ($collection as $region => $cities) { 
    echo $region . '<br/>'; 
    foreach ($cities as $city) { 
     echo '--' . $city . '<br/>'; 
    } 
} 
+0

답장을 보내 주셔서 감사합니다. 이제 모든 것을 검사하고 결과를 작성하겠습니다. –

+0

고맙습니다. 내가 원하는 방식으로 정확하게 작동! –

+0

도와 주셔서 감사합니다. Stack Overflow에 오신 것을 환영합니다! – dferenc

관련 문제