web-dev-qa-db-fra.com

Obtenir plusieurs identifiants de termes par slug, puis les exclure dans get_terms

Je souhaite exclure plusieurs termes dans get_terms, mais le paramètre exclude n'accepte que les identificateurs de terme. Je dois donc obtenir les identifiants de terme de son slug.

Voici ce que j'ai jusqu'à présent:

$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'   => '???' <<<<
                ) );

Je sentais qu'il y avait quelque chose de vraiment faux et de redondant ici, mais je ne savais pas comment les mettre dans un tableau pouvant être utilisé dans le paramètre exclude. De l'aide?

3
deathlock

Vous pouvez obtenir des termes, à partir de plusieurs slugs, avec l'argument slug:

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

où nous utilisons l’argument fields pour renvoyer uniquement les identifiants de terme.

3
birgire