Custom sub taxonomy order by

时间:2017-08-08 作者:Vishit

在单类别页面中,特定的父类别子类别按slug或order wise显示,我会尝试,但我的代码中有错误,请检查我的代码并告诉我如何可能。

$term_children = get_term_children( $EM_Category->id, \'event-categories\' );
if ( count($term_children) > 0 ) {
    foreach ( $term_children as $child ) {
        $term = get_term_by( 
            \'id\', 
            $child, 
            \'event-categories\', 
            array( 
                \'orderby\' => \'slug\',
                \'hide_empty\' => true
            ) 
        );
    }
}

1 个回复
SO网友:Krzysiek Dróżdż

很难说你的代码到底是什么意思。。。

我看到的第一个问题是你滥用了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\'
) );

结束