如何按名称而非创建时间顺序显示WordPress子分类列表?
修改后的代码(按名称字母顺序显示子分类)
add_shortcode( 'list_subcats', function() { ob_start(); $current_cat = get_queried_object(); // 直接用get_terms查询子分类,指定排序规则 $sub_cats = get_terms( array( 'taxonomy' => 'category', 'parent' => $current_cat->term_id, 'orderby' => 'name', // 按名称排序 'order' => 'ASC', // 升序(A-Z),如果要Z-A改成DESC 'hide_empty' => false, // 可选:是否隐藏空分类,根据需求调整 ) ); if ( ! empty( $sub_cats ) && ! is_wp_error( $sub_cats ) ) { echo '<ul class="list-subcats">'; foreach ( $sub_cats as $sub_cat ) { echo '<li><a href="' . get_term_link( $sub_cat ) . '">' . $sub_cat->name . '</a></li>'; } echo '</ul>'; } return ob_get_clean(); } );
关键改动说明
- 替换原代码的
get_term_children,改用get_terms函数直接查询子分类,支持自定义排序规则 - 添加
orderby => 'name'指定按分类名称排序,order => 'ASC'设置为A-Z升序(需Z-A倒序可改为DESC) - 增加空值与错误判断,避免无分类时输出空列表容器
- 简化分类链接与名称的调用逻辑,直接使用分类对象属性,代码更简洁
内容的提问来源于stack exchange,提问作者anat
相关产品推荐
相关产品推荐

