WordPress ne dispose d'aucune condition pour détecter une page sans enfant. Or, une telle information est particulièrement utile pour afficher ou masquer certains éléments qui respecteraient cette condition.
Ce tutoriel vous explique comment utiliser une fonction PHP afin de tester le cas de figure et injecter le code de votre choix.
La technique employée ici repose sur le recours à la fonction get_post_ancestors de WordPress. Elle permet de retrouver les parents d’un contenu par rapport à son identifiant. Rappelons que WordPress offre la possibilité de hiérarchiser ses pages selon le principe des parents et des enfants.
Nous recherchons ainsi la présence d’enfants en passant l’identifiant du contenu parent dans l’argument child_of de la fonction wp_list_pages. À partir de là, une simple condition PHP fait l’affaire : si présence d’enfant alors on exécute le code sinon on fait autre chose.
Un exemple d’application concrète : l’affichage d’un menu hiérarchique à la manière du sommaire d’un article de Wikipédia en cas de pages enfants. Voici le code utilisé :
<?php $parent_ID = $post->post_parent ? @ array_pop(get_post_ancestors($post)) : $post->ID; $children = wp_list_pages( array( 'child_of' => $parent_ID, 'title_li' => '', 'echo' => false, ) ); ?> <?php if ($children) : ?> <h3 class="widget-title"><?php _e('Read also in this section', 'textdomain'); ?></h3>
Découvrez les extensions WordPress qui allient l’intelligence artificielle pour vous aider à générer du contenu de qualité en un rien de temps. L’IA au…
WP-CLI est un outil incontournable pour les utilisateurs de WordPress. Il permet de gérer efficacement un site en utilisant des lignes de commande dans…
Améliorez les performances de votre site WordPress en optimisant vos images avec Imagify. Découvrez comment utiliser cette extension pour compresser vos images, générez une…
Certains fichiers vectoriels qui portent l’extension SVG pour Scalable Vector Graphics ne sont pas toujours correctement formatés. Ce phénomène génère un problème d’affichage lors…
bonjour,
le @ est une mauvaise pratique il vaut mieux utiliser un error handler http://php.net/manual/fr/function.set-error-handler.php mais sinon le script est très intéressant. merci.