web-dev-qa-db-fra.com

Modèle pour les pages enfants/sous-pages

J'essaie de créer un fichier de modèle pour mon type de publication personnalisé, différent pour la publication du parent, de l'enfant et de l'enfant de l'enfant.

Le meilleur que j'ai pu trouver est le code suivant:

if( $post->post_parent !== 0 ) {
    get_template_part('content', 'child');
} else {
    get_template_part('content');
}

Le seul problème avec cela est que cela ne fonctionne que pour Parent> Child.

Existe-t-il un moyen de faire en sorte que cela fonctionne pour Parent> Enfant> Enfant?

1
Rob

Voici une idée de base:

Toute page dont le parent de page ( $post->post_parent ) est 0, cela signifie que la page est une page de niveau supérieur. Si une autre valeur existe, la page est un enfant d'une autre page. Cette valeur est l'ID de la page à laquelle la page spécifique est un enfant.

Avec les informations ci-dessus, nous pouvons calculer si la page est un enfant ou un groupe de parents en utilisant get_post et les propriétés retournées WP_Post.

Vous pouvez essayer les solutions suivantes: ( CAVEAT: non testé )

if ($post->post_parent === 0) {

    //Do something for post parent

} else {

    $q = get_post($post->post_parent);

    if ($q->post_parent === 0) {

        //Do something for direct child

    } else {

        // Do something for grand child

    }

}
0
Pieter Goosen