Comment obtenir le titre de la page parente la plus haute de la page sur laquelle se trouve le visiteur?
Permettez-moi de décrire:
J'ai cette structure de page:
Voici ce que je veux revenir:
Example Title 1
return Example Title 1
Example Title 1-1
return Example Title 1
Example Title 1-1-1
return Example Title 1
Example Title 2
return Example Title 2
Normalement, je vérifie $post->parent
et si 0
, puis renvoie le titre de la page, sinon renvoie le titre de la page ci-dessus. Le problème est que $ post-> parent ne reviendra que d'un niveau. Je dois utiliser une sorte de fonction récursive qui continue à remonter jusqu'au $post->parent == 0
.
Maintenant, je peux gérer cela moi-même, mais la seule façon de le faire serait d'utiliser get_post () à chaque fois, mais imaginons que j'ai 8 couches de profondeur (nous devons aller plus loin). Cela impliquerait de charger 8 pages pour enfin atteindre le plus haut niveau. Quelqu'un a une meilleure façon de faire ça?
Trouvé de cette façon:
if ( 0 == $post->post_parent ) {
the_title();
} else {
$parents = get_post_ancestors( $post->ID );
echo apply_filters( "the_title", get_the_title( end ( $parents ) ) );
}
Quelqu'un a un meilleur moyen s'il vous plaît répondre.
Pas sûr que ce soit efficace c'est possible avec recursive function
function get_post_ancestor_title($post_id){
$post = get_post($post_id)->post_parent;
if ( 0 == $post->post_parent ) {
return get_the_title();
} else {
get_post_ancestor_title($post->ID);
}
}