我使用Wordpress类别按城市创建公司目录。 类别是城市。 自定义字段是包含城市的区域。 对于使用的自定义字段 - Advanced Custom Fields 对于使用的构建自定义taxanomy顺序 - WP Term Order
$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>';
}
我记得:
Wielkopolskie Poznań
Wielkopolskie Bojanowo
Mazoweckie 华沙
Dolnoslaskie 弗罗茨瓦夫
Dolnoslaskie Jawor
但我需要:
的大波兰
- 波兹南
- Bojanowo
的 Mazoweckie
- 华沙
的下西里西亚
- 弗罗茨瓦夫
- Jawor
请帮忙解决此问题
的更新
*帮助请在Wordpress类别中添加链接(slug)到代码
在这里,我们收集一个地区的所有城市:
$ collection [$ region] [] = $ object-&gt; name;
我们需要在每个城市添加一个slu ..
的 $对象 - &GT;蛞蝓; 强>
我们需要使用它作为期权的价值。
'<option value="' . **SLUG** . '" data-select2-id="'. $data_select_id . '-' .$i .'">' . $city . '</option>';
的更新:
*工作代码
我们添加了 - $ collection [$ region] [] = $ object-&gt; name; - $ object-&gt; slug并将它们组合成一个数组
$ collection [$ region] [] = array('name'=&gt; $ object-&gt; name,'slug'=&gt; $ object-&gt; slug);
对于我们使用的输出 - $ city ['name']和$ city ['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>';
;?>
答案 0 :(得分:2)
您可以使用其他数组将城市分类为以下区域:
$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/>';
}
}