Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何按ID排序子类别列表_Php_Wordpress - Fatal编程技术网

Php 如何按ID排序子类别列表

Php 如何按ID排序子类别列表,php,wordpress,Php,Wordpress,我有这部分代码: <?php $cat_object = $wp_query->get_queried_object(); $i = $cat_object->term_id; while (true) { $cat = get_category($i); if ($cat->category_parent) { $i = $cat->category_parent;

我有这部分代码:

<?php
    $cat_object = $wp_query->get_queried_object();
    $i = $cat_object->term_id;

    while (true) {
        $cat = get_category($i);
        if ($cat->category_parent) {
            $i = $cat->category_parent;
        } else {
            break;
        }
    }
    $parentcat = $i;
    if (is_category(array(8, 10, 11, 12, 13, 14))) {
        wp_list_categories("depth=2&child_of=" . $parentcat . "&title_li=");
    } else {
        wp_list_categories("depth=1&child_of=" . $parentcat . "&title_li=");
    }

?>
它显示我的类别和子类别(如果存在)。现在我需要对显示的子类别列表进行排序

我看到:

第一类 第二类 第三类 第一类 六类 第五类 第三类 第四类
但是我需要按ID对我的子类别进行排序。

如果您查看文档,因为它们有一些参数可以帮助您。即order和orderby参数。试试这个:

<?php
    $cat_object = $wp_query->get_queried_object();
    $i = $cat_object->term_id;

    while (true) {
        $cat = get_category($i);
        if ($cat->category_parent) {
            $i = $cat->category_parent;
        } else {
            break;
        }
    }
    $parentcat = $i;
    if (is_category(array(8, 10, 11, 12, 13, 14))) {
        wp_list_categories("depth=2&child_of=$parentcat&orderby=name&order=DESC");
    } else {
        wp_list_categories("depth=1&child_of=$parentcat");
    }

?>
我对你的URL进行了一点重构。我删除了title_li参数,因为您没有传递参数。此外,由于使用双引号包装字符串,因此可以直接在字符串中使用变量,而无需连接

无论如何,您会注意到字符串末尾添加了按字母顺序组织类别的内容。您可以将其更改为许多不同的内容,但您可以在上找到这些内容

根据评论更新

仅使用wp_list_categories功能无法实现子类别的排序。您要么需要定义一个仅对子类别进行排序,要么可以尝试一个插件来更改对类别进行排序的方式


这有点过时,但仍然有效!确保删除字符串中的order和orderby参数。

是否尝试使用orderby=ID?是的,它会更改整个类别列表。但我只需要更改子类别。同样,这种顺序正在更改整个列表,但我只需要对子类别进行排序。您有两个正在呈现的列表。我假设代码中的第一个列表是子类别,第二个是父类别。此假设基于深度参数。如果是这种情况,只需从字符串中删除order和orderby参数。答案更新。两次都是同一个列表,如果我在第8类,它会显示我的子类别,如果不是-否。如果我更改订单或订单,它会更改整个列表。如果我是第8类的话,我只想更改子类。。我希望你能理解,顺便说一句,对不起我的英语不好。我知道你在做什么。仅使用wp_list_categories功能无法实现这一点。您需要定义一个自定义的walker来对子类别进行排序,或者您可以尝试使用一个插件来更改对类别的排序方式。这有点过时,但仍然有效!确保删除字符串中的order和orderby参数。我将用这些信息更新答案。