Zrobiłem kilka niestandardowych taksonomii i muszę pokazać WSZYSTKIE zawarte w nich terminy. Do tej pory udało mi się pokazać taksonomie wybrane / wybrane w niestandardowy typ posta, ale potrzebuję ich wszystkich do wyświetlenia, niezależnie od tego, czy jest zaznaczony, czy nie. Później mogę utworzyć filtr filtrujący według tego, jakie terminy zawiera wartość niestandardowego typu posta.
<?php $args=array( "public" => true, "_builtin" => false ); $output = "names"; // or objects $operator = "and"; $taxonomies=get_taxonomies($args,$output,$operator); if ($taxonomies) { foreach ($taxonomies as $taxonomy ) { $terms = get_terms($taxonomy); foreach ( $terms as $term) { ?> <li><br><a href="#"><input type="checkbox" name="profile[]" value=""><?php echo $term->name; ?> <br/></a></li> <?php } } } ?>
Co mam do tej pory.
Z góry dziękuję!
Komentarze
- W którym momencie to się nie powiedzie? Ile z tego działa tak, jak ' lubisz?
- Działa, problem polega na tym, że mogę wyświetlać tylko WYBRANE terminy w niestandardowym typie posta. Chcę, aby wszystkie były wyświetlane, niezależnie od tego, czy są zaznaczone, czy nie, ' nie chcę mieć fikcyjnego typu posta, który ma zaznaczone wszystko, aby je pokazać.
Odpowiedź
Musisz przekazać dodatkowy argument do . Domyślnie ukrywane są „puste” terminy – terminy, które nie są przypisane do żadnych postów.
$terms = get_terms([ "taxonomy" => $taxonomy, "hide_empty" => false, ]);
Komentarze
- Dziękuję bardzo! Ale chcę o coś zapytać, dlaczego miałbyś tworzyć tablicę wewnątrz zmiennej zamiast deklarować ją powyżej miejsca, w którym wyświetlana jest pierwsza tablica?
- Prostota. Gdyby tablica argumentów była bardziej złożona, zadeklarowałbym ją najpierw (najprawdopodobniej), ale dla pojedynczego argumentu jest to po prostu najprostszy sposób na zrobienie tego. Tak czy inaczej, powinno działać równie dobrze.
- Wielkie dzięki 🙂 bardzo mi to przemyślało. Naprawdę to doceniam!
- Działa !! Teraz widzę, co ' dzieje się ze wszystkimi opcjami taksonomii! Niektóre wtyczki tworzą tam złożoną strukturę.
Odpowiedź
Od wersji 4.5.0 taksonomie należy przekazywać poprzez Argument taksonomii w tablicy $ args, więc:
$terms = get_terms( array( "taxonomy" => "post_tag", "hide_empty" => false, ) );
gdzie hasła bez postów są domyślnie ukryte.
Odpowiedź
Ten kod pobiera wszystkie niestandardowe taksonomie kategorii i podkategorii przy użyciu get_terms()
: