欢迎光临
我们一直在努力

WordPress文章设置多个分类时按照层级顺序显示的方法

WordPress文章可以设置多个分类,但当你选择多个层级的分类时,前台可能并不是按照层级递进的顺序来显示,本文解决的就是这个问题。

以下方法是使用了WordPress的Hook,当使用函数 get_the_category() 或 the_category() 的时候会自动按照层级顺序显示分类。

WordPress 文章设置多个分类时按照层级顺序显示的方法

将以下代码复制到主题文件functions.php

/**
 * 文章多个分类时按照层级顺序显示
 * https://themebetter.com/wordpress-multi-cat-show.html
 */
add_filter('get_the_categories', 'tba_get_the_categories', 10, 1);
function tba_get_the_categories($categories) {
    usort($categories, function ($a, $b) {
        return $a->category_parent <=> $b->category_parent;
    });

    $newArr = array();
    $ids = array();

    foreach ($categories as $category) {
        $ids[] = $category->term_id;
        if ($category->parent == 0) {
            $newArr[] = $category;
        } else {
            $index = array_search($category->parent, $ids);
            array_splice($newArr, $index + 1, 0, array($category));
            array_splice($ids, $index + 1, 0, array($category->term_id));
        }
    }

    return $newArr;
}
赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《WordPress文章设置多个分类时按照层级顺序显示的方法》
文章链接:http://www.zyhot.com/archives/1480.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发