get_ancestors( int $object_id = 0, string $object_type = '', string $resource_type = '' )
Retourne un tableau d'ids de parents pour un objet donné.
Paramètres
$object_id
(int) (Optionnel) Id de l'objet.
Valeur par défaut : 0
$object_type
(string) (Optionnel) Type de l'objet pour lequel sera retourné ses parents. Accepte les types de postes et les nom de taxonomies.
Valeur par défaut : ''
$resource_type
(string) (Optionnel) Type de ressource de $object_type. Accepte 'post_type' ou 'taxonomy'.
Valeur par défaut : ''
Retourne
(int[]) Un tableau d'ids de parents de bas en haut dans la hiérarchie.
Structure de la fonction get_ancestors()
Définie dans le fichier wp-includes/taxonomy.php à la ligne 4624 :
function get_ancestors( $object_id = 0, $object_type = '', $resource_type = '' ) {
$object_id = (int) $object_id;
$ancestors = array();
if ( empty( $object_id ) ) {
/** This filter is documented in wp-includes/taxonomy.php */
return apply_filters( 'get_ancestors', $ancestors, $object_id, $object_type, $resource_type );
}
if ( ! $resource_type ) {
if ( is_taxonomy_hierarchical( $object_type ) ) {
$resource_type = 'taxonomy';
} elseif ( post_type_exists( $object_type ) ) {
$resource_type = 'post_type';
}
}
if ( 'taxonomy' === $resource_type ) {
$term = get_term( $object_id, $object_type );
while ( ! is_wp_error( $term ) && ! empty( $term->parent ) && ! in_array( $term->parent, $ancestors, true ) ) {
$ancestors[] = (int) $term->parent;
$term = get_term( $term->parent, $object_type );
}
} elseif ( 'post_type' === $resource_type ) {
$ancestors = get_post_ancestors( $object_id );
}
/**
* Filters a given object's ancestors.
*
* @since 3.1.0
* @since 4.1.1 Introduced the `$resource_type` parameter.
*
* @param int[] $ancestors An array of IDs of object ancestors.
* @param int $object_id Object ID.
* @param string $object_type Type of object.
* @param string $resource_type Type of resource $object_type is.
*/
return apply_filters( 'get_ancestors', $ancestors, $object_id, $object_type, $resource_type );
}
Fonctions et Hook utilisés par get_ancestors()
get_ancestors
Filtre les parents d'un objet donné.
is_taxonomy_hierarchical()
Détermine si la taxonomie est hiérarchique.
get_term()
Retourne toutes les données d'un terme en donnant son ID.
apply_filters()
Appel les fonctions qui ont été attaché à un filtre (hook).
post_type_exists()
Détermine si un type de poste existe.
get_post_ancestors()
Retourne un tableau des ids des parents d'un poste.
is_wp_error()
Vérifie si la variable est une erreur WordPress.
Où trouver la fonction get_ancestors()
dans le CMS Wordpress
Exemple
Sources
Codex Wordpress : get_ancestors()
Autres fonctions dans le même fichier : wp-includes/taxonomy.php