更好的WordPress主题

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

摘要:当你选择多个层级的分类时,前台可能并不是按照层级递进的顺序来显示,本文解决

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

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

注意: DUX主题已经有此功能。


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;
}

本文属原创,转载请注明原文:https://themebetter.com/wordpress-multi-cat-show.html

感觉很棒,欢迎打赏~

18 打赏
分享到:

评论 (0)

登录后评论
注:有关主题的售前售后请 提交工单

建站!你有充足的理由选择我们

世界上超过43%的网站是由WordPress搭建,而我们是国内最靠谱的WordPress主题开发商
在线工单