加载按重量排序的术语

时间:2018-02-28 09:41:17

标签: sorting drupal drupal-7 drupal-taxonomy

当谈到根据术语权重从升级顺序加载术语时,是否有人能指出正确的方向?

这就是我现在所拥有的:

$taxonomy = taxonomy_vocabulary_machine_name_load('tool_type');
$terms = entity_load('taxonomy_term', FALSE, array('vid' => $taxonomy->vid));

从我所看到的,我的术语现在按字母顺序排序,这不是我需要的。

我还发现,当你可以在CMS中拖放这些术语来改变术语的权重时,字母顺序似乎是标准的。 如果这些术语按重量分类为标准则更有意义。 任何人都可以向我解释为什么以这种方式实现它?

1 个答案:

答案 0 :(得分:0)

您可以使用分类项目的weight属性对它们进行排序:

$taxonomy = taxonomy_vocabulary_machine_name_load('tool_type');
$terms = entity_load('taxonomy_term', FALSE, array('vid' => $taxonomy->vid));
uasort($terms, function($a, $b) {
    if ($a->weight == $b->weight) return strcmp($a->name, $b->name) ;
    return $a->weight > $b->weight;
});

这将按重量排序。如果重量相同,按名称排序。