Wymień wszystkie terminy ze słownika


25

Mam taksonomię zwaną usługami i chcę wymienić wszystkie warunki. Mogę załadować słownictwo

 $vocabulary = taxonomy_vocabulary_machine_name_load('Services')

ale nie widzę, aby wszystkie warunki zostały wyjęte.


umiesz napisać szczegółowy kod?
monymirza

Odpowiedzi:


43

Jest kilka sposobów, ale wolę entity_load():

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

Możesz także użyć:


Czy możesz wyjaśnić zalety korzystania entity_load?
niksmac

3
@NikhilM To mniej znaków do pisania niż taxonomy_term_load_multiple()dlatego osobiście wolę to. Użycie taxonomy_get_tree()wprowadza niepotrzebne poziomy złożoności do zaangażowanych zapytań, chyba że potrzebujesz konkretnych terminów w ich oryginalnej hierarchii (których OP nie określił)
Clive

Podoba mi się, ale myślę, że odpowiedź poniżej jest nieco łatwiejsza do odczytania.
LeBlaireau,

@welovedesign Naprawdę? Wolę 2 wiersze niż 6, ale to tylko osobiste preferencje :) Dopóki ma mniej niż 80 znaków, nadal przestrzegasz standardów kodowania Drupala
Clive

Moja +1 za przestrzeganie standardów kodowania Drupala
niksmac

18

Chciałbym użyć tego kodu.

$name = 'YOUR_VOCAB_NAME';
$myvoc = taxonomy_vocabulary_machine_name_load($name);
$tree = taxonomy_get_tree($myvoc->vid);
foreach ($tree as $term) {
 echo $term->tid;
}

taxonomy_vocabulary_machine_name_load

taksonomia_get_tree


Jeśli masz witrynę wielojęzyczną, nie działa to zgodnie z oczekiwaniami. Jeśli chcę wszystkie warunki, niezależnie od języka, nie daje to odpowiednich wyników. „taxonomy_get_tree” przeanalizuje wyniki w oparciu o język. powyższa odpowiedź działa dla mnie
Vaibhav Jain
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.