Получите несколько идентификаторов терминов с помощью slug, а затем исключите их в get terms


Я хочу исключить несколько терминов в get_terms, но параметр exclude принимает только идентификаторы терминов. Поэтому я должен получить идентификаторы терминов из его слизняка.

Вот что у меня есть до сих пор:

$pres = get_term_by('slug', 'president', $cat_type);
$vice = get_term_by('slug', 'vice-president', $cat_type);
$admin = get_term_by('slug', 'admin', $cat_type);
$rnd = get_term_by('slug', 'rnd', $cat_type);

$ID_pres = $pres->term_id;
$ID_vice = $vice->term_id;
$ID_admin = $admin->term_id;
$ID_rnd = $rnd->term_id;

$terminologies = get_terms( $cat_type, array(
                    'orderby'   => 'term_id',
                    'exclude'   => '???' <<<<
                ) );

Я чувствовал, что здесь что-то действительно неправильно и избыточно, но я не уверен, как поместить их в массив, который можно использовать в параметре exclude. Есть какая-нибудь помощь?

 4
Author: deathlock, 2017-06-28

1 answers

Вы можете получить термины из нескольких слизней с аргументом slug:

$exclude = get_terms ( 
    [ 
        'slug'     => [ 'president', 'vice-president', 'admin', 'rnd' ], 
        'taxonomy' => $cat_type,
        'fields'   => 'ids',
    ] 
);

Где мы используем аргумент fields для возврата только идентификаторов терминов.

 5
Author: birgire, 2017-06-28 15:50:52