Як я можу отримати лише батьківські терміни?


Відповіді:


38

Так, просто передайте батьківський параметр, get_termsколи ви його викликаєте, як зазначав Майкл.

Оскільки WP 4.5 - це рекомендоване використання:

$myterms = get_terms( array( 'taxonomy' => 'taxonomy_name', 'parent' => 0 ) );

До WP 4.5 це було типовим використанням:

$myterms = get_terms( 'taxonomy_name_here', array( 'parent' => 0 ) );

Поверне всі терміни, які мають батьківське значення 0, тобто. умови верхнього рівня.


Він повертає порожній масив для користувацьких таксономій :(
Mamaduka

Чи пов’язані терміни в цій таксономії з посадою (або спеціальним типом)? Якщо ні, вам потрібно буде пропустити hide_emptyпараметр, встановивши це 0також, щоб ви могли бачити терміни, які зараз не використовуються.
t31о

Зауважте, що це отримає лише батьківський рівень 1, термін "мати". Щоб знайти всіх предків, використовуйте get_ancestors(TERM_ID, TAXONOMY, 'taxonomy') developer.wordpress.org/reference/functions/get_ancestors
jave.web


2

для шаблонів електронної пошти з питань торгівлі використовуйте наступне:

$terms = get_the_terms( $_product->id , 'product_cat');
    if($terms) {
        foreach( $terms as $term ) {
            $term = get_term_by("id", $term->parent, "product_cat");
            if ($term->parent > 0) {
                $term = get_term_by("id", $term->parent, "product_cat");
            }
            $cat_obj = get_term($term->term_id, 'product_cat');
            $cat_name = $cat_obj->name;
        }
    }
echo '<br />('. $cat_name . ')';

5
будь-ласка, додайте пояснення щодо того, як ваш код може вирішити питання. ОП не ставило питання про шаблони електронної пошти з питань торгівлі.
iEmanuele

1
 $archive_cats= get_terms( 'archivecat', 'orderby=count&hide_empty=0&parent=0' );

3
Чим це відрізняється від (вже прийнятої) відповіді, запропонованої більше двох років тому?
tfrommen

Ви бачили коментарі щодо (вже прийнятої) відповіді? якщо більше відповідей не корисні, чому питання все-таки відкрилося ?!
ашраф махаммед

Був єдиний запит щодо того, що терміни не відображаються, це не було пов'язано з початковим запитанням, і я вирішив це питання у коментарі у відповіді (оскільки це не мало жодного стосунку до дійсності та правильності відповіді, що вже надана).
t31os

1
Будь ласка, зверніться до цього в редакції. Поясніть свій код.
кайзер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.