当前位置: 首页 > 知识库问答 >
问题:

按自定义域排序的Wordpress类别(完成)。如何只输出一次自定义域

夹谷阳夏
2023-03-14

我使用Wordpress类别创建了一个按城市划分的公司目录。类别是城市。自定义域是包含城市的区域。用于自定义域-用于构建自定义分类顺序的高级自定义域-WP术语顺序

$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>';
}

I recurive:
Wielkopolskie Poznan
Wielkopolskie Bojanowo
Mazoweckie Warszawa
Dolnoslaskie Wrocóaw
Dolnoslaskie Jawor

帮助请与此问题的决定
更新
*帮助请添加一个链接到Wordpress类别到代码这里我们收集一个地区的所有城市:
$collection[$region][]=$object->name;
我们需要为每个城市添加一个slug
$object->slug;
我们需要将slug用作选项的值。

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


更新:
*工作代码
我们添加到-$collection[$region][]=$object->name;-$object->slug并将它们组合成一个数组
$collection[$region][]=array('name'=>$object->name,'slug'=>$object->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>'; 
;?>

共有1个答案

韦安顺
2023-03-14

您可以使用一个额外的数组将城市划分为如下所示的区域:

$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/>';
    }
}
 类似资料:
  • 我正在为我的站点编写一个wordpress插件,它根据同一帖子下的另一个自定义域的值替换(或者添加(如果它为空的话)自定义域的值。 示例:我将有一个带有逗号分割值的列表,如下所示: 苹果、红香蕉、黄猕猴桃、绿色等。 当我运行该脚本时,它将找到一个带有custom_field_fruit的帖子,其值为“apple”,并将custom_field_color的值更改为red,当然,在同一帖子中。然后,

  • 我正在为wordpress主题定制事件帖子类型,我遇到了一个排序问题。一切都按我的需要工作,直到我吐出模板的值。我需要按日期顺序列出事件,但我似乎无法做到这一点。这是我的代码: 上面我从日期选择器获取输入并重新格式化文本。 在这里,我使用WP_查询来获取适当的post类型,即元键,并尝试通过该元键对输出进行排序。唯一的问题是事件没有正确排序。 我已尝试将转换为整数,但无法使其正常工作。我想可能日期

  • 我试图从循环中排除自定义分类法类别中的项目(slg: Private-Case-research,ID: 5)。我正在使用以下代码,有人有建议或想法为什么它不起作用吗?提前感谢!

  • 问题内容: 如何通过“静态”方面和“动态”方面自定义的完成?静态方面是因为某些条目是已知的,并在构造时使用添加到了组合框文本中。动态方面是因为我还需要通过一些回调函数来完成,也就是说,一旦键入了几个字符,即在创建窗口小部件之后 动态地 完成。 我的应用程序使用的是Boehm的GC(当然不包括GTK对象),例如Guile或SCM或Bigloo。它可以看作是一种实验 性的持久性 动态类型的编程语言实现

  • 问题内容: 我有这样的查询: 但是,当我打印出来时,它会自动进行1,2,3,4,5的排序。我们如何在不更改数据库结构的情况下保持顺序(2,4,1,5,3)? 谢谢! 问题答案: 我问这个: mysql按问题排序 我得到的答案和所有功劳归于他们: 您可以使用CASE运算符指定顺序: 在PHP中,你可以像这样:

  • 问题内容: 我有一个问题:这是由ElementTree库形成的列表列表。 word1..4可能包含Unicode字符,即(â,ü,ç)。 我想按我的自定义字母对列表列表进行排序。 我知道如何从这里按python中的单词对自定义字母进行排序 我也知道如何从此处http://wiki.python.org/moin/HowTo/Sorting按键排序 问题是我找不到如何应用这两种方法对“列表列表”进行