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

get_ancestors( 208, 'category' );
// Retourne :
Array
(
    [0] => 23
    [1] => 6
)

get_ancestors( 448, 'page' )
// Retourne :
Array
(
    [0] => 447
)

Sources

Codex Wordpress : get_ancestors()

Autres fonctions dans le même fichier : wp-includes/taxonomy.php

Retour