我有这部分代码:
<?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订购我的子类别。
答案 0 :(得分:0)
如果您查看wp_list_categories()
的文档,他们会提供一些可以帮助您的论据。即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");
}
?>
我稍微重构了你的网址。我删除了title_li
参数,因为您没有传递参数。此外,由于您使用双引号"
来包装字符串,因此您可以直接在字符串中使用该变量而无需连接。
无论如何,您会注意到字符串末尾的添加以按字母顺序组织类别。您可以将其更改为许多不同的内容,但您可以在documentation上找到这些内容。
根据评论进行更新
仅使用wp_list_categories()
功能无法仅对子类别进行排序。您需要定义custom walker以仅对子类别进行排序,或者您可以尝试使用插件来更改对类别进行排序的方式。
这plugin有点过时,但它仍然有效!确保删除字符串中的order
和orderby
参数。