我很好奇为什么WordPress不支持标签分类中的parent->子层次结构,所以让我们假设你有一个标签:
城市(父母)和这个城市将城市列为子标签 - 伦敦 - 纽约 - 莫斯科 - .....所有城市都是父标签“城市”的子标签。
我认为这个功能应该在某些下一个WordPress版本中被覆盖或实现。
为了实现这个目标,我创建了一个自定义分类法并将其命名为Tags,并且这个版本的slug是“post_tags1”,因此它不会与原始标签冲突。
然后我取消设置默认标签,我使用自定义分类法post_tags1作为默认标签分类。
与标签绑定的所有功能都不适用于新标签(is_tag,wp_tag_clound ......等)
而不是那些函数,您将不得不使用术语函数,因为它们适用于自定义分类法。
我的目标是创建上面提到的父子层次结构,但是当我尝试列出父标记的子标记时,我得到一个空数组,但它们存在于我的分类中。
我正在使用此代码:
$ taxonomies = array( 'post_tag1' );
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'fields' => 'all',
'slug' => 'cities',
'parent' => 'cities',
'hierarchical' => true,
'child_of' => 0
);
$terms = get_terms($taxonomies, $args);
var_dump($terms);
foreach ($terms as $term) {
print '<h2 class="story-heading">'.$term->name.'</h2>';
}
并且var_dump函数打印一个空数组,并且在foreach语句中没有迭代,也没有打印任何内容。
任何想法为什么会如此?
如果有人会提出一种不同的方法来解决这个问题,或者某种类型的插件可以解决这个问题,我们将不胜感激。
问候,Mile M。
答案 0 :(得分:1)
父参数是一个整数,因此它应该是父ID。 来自get_terms function reference:
父 (整数)获取此术语的直接子项(仅显式父项为此值的术语)。如果传递0,则仅返回顶级术语。默认为空字符串。