Je souhaite obtenir les termes de second niveau d'un terme parent spécifique (premier niveau) dans une taxonomie personnalisée. Cela semble compliqué mais serait utile.
Term 1
SubTerm-1.1
SubTerm-1.2
SubTerm-1.2.1
Term 2
SubTerm-2.1
Disons, si SubTerm->parent
est l'identifiant du terme 1, alors je veux sortir les sous-termes 1.1 et 1.2 mais pas 1.2.1.
wp_list_categories(array('depth' => 2, 'taxonomy' => 'customtax'));
n’est pas ce que je recherche, car il répertorie les termes avec leurs liens, ce que je ne veux pas, et il n’ya pas d’option de filtrage par SubTerm->parent
id.
Donc, une idée?
Vous pouvez utiliser le array_filter
de PHP pour traiter les résultats d'une fonction de requête de taxonomie qui renvoie ses résultats, puis les afficher. Quelque chose comme:
# This returns the whole taxonomy...
$whole_tax = get_terms('customtax', array('hide_empty' => 0));
$second_level = array_filter($whole_tax, function ($t) {
# This term has a parent, but its parent does not.
return $t->parent != 0 && get_term($t->parent, 'customtax')->parent == 0;
});
À ce stade, vous pouvez générer le rendu de $second_level
dans le format de votre choix.
NB Si cela est souvent utilisé sur un côté occupé devrait éviter tous ces appels get_term
supplémentaires en lisant dans le tableau $whole_tax
en supposant que la documentation indique que get_term
frappe toujours la base de données lorsqu'un identifiant est transmis.