很难说你的代码到底是什么意思。。。
我看到的第一个问题是你滥用了get_term_by
作用
此函数采用5个参数:
get_term_by( $field, $value, $taxonomy, $output, $filter )
- $field (字符串)(必需)“id”、“slug”、“name”或“term\\u taxonomy\\u id”
- $value (字符串|整数)(必需)搜索此术语值默认值:无
- $taxonomy (字符串)(必需)分类名称类别、post\\u标记、link\\u类别、nav\\u菜单或自定义默认值:“”(空字符串)
- $output (string)(可选)常量对象、ARRAY\\u A或ARRAY\\N默认值:OBJECT
- $filter (字符串)(可选)默认值为raw,或不应用WordPress定义的筛选器。默认值:“原始”
在您的代码中,它是这样使用的:
$term = get_term_by(
\'id\',
$child,
\'event-categories\',
array(
\'orderby\' => \'slug\',
\'hide_empty\' => true
)
);
所以前三个参数是正确的,但最后一个应该是
$output
然后你把别的东西放进去。。。即使那个数组是正确的param,在那个位置排序也是没有意义的。。。
那么,如何让一个词的子词按字母顺序排序呢
您可以使用
get_terms
功能:
$term_children = get_terms( array(
\'taxonomy\' => \'event-categories\',
\'child_of\' => $EM_Category->id,
\'orderby\' => \'name\'
) );