按权重排序的负载项

Load terms sorted by weight

当涉及到根据词权重按升序从词汇表加载词时,有人能给我指出正确的方向吗?

这是我现在拥有的:

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

据我所知,我的条款现在按字母顺序排序,这不是我需要的。

我还觉得很奇怪,当您可以在 CMS 中拖放术语以更改术语的权重时,字母顺序似乎是标准的。 如果这些条款按标准按重量排序,那将更有意义。 谁能给我解释一下为什么要这样实现?

您可以使用分类项的 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;
});

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