Tutoriels WordPress de confiance, quand vous en avez le plus besoin.
Guide du débutant pour WordPress
WPB Cup
25 millions+
Sites web utilisant nos plugins
16+
Années d'expérience WordPress
3000+
Tutoriels WordPress par des experts

Comment afficher une liste de pages enfants pour une page parente dans WordPress

Récemment, l'un de nos lecteurs nous a demandé comment afficher les pages enfants d'une page WordPress ? C'est une question que nous recevons assez souvent chez WPBeginner, et elle met en évidence un besoin courant d'améliorer la navigation sur le site et l'expérience utilisateur. 

Si vous organisez votre site WordPress avec des pages parentes et enfants, vous voudrez peut-être afficher vos pages enfants ou sous-pages sur la page parente principale. Cela aide les utilisateurs à voir facilement toutes les informations disponibles dans une section spécifique et à naviguer rapidement vers des sous-sujets pertinents.

Vous pourriez également vouloir afficher le lien de la page parente principale sur chaque sous-page pour faciliter la navigation, créant ainsi un effet de type fil d'Ariane. Cette navigation simplifiée empêche les utilisateurs de se perdre dans les profondeurs de votre site et améliore leur expérience de navigation globale.

Dans cet article, nous vous montrerons comment afficher facilement une liste de pages enfants pour une page parente dans WordPress.

Afficher une liste de pages enfants pour une page parente dans WordPress

Quand avez-vous besoin d'afficher une liste de pages enfants ?

WordPress est livré avec deux types de publication par défaut appelés articles et pages. Les articles sont du contenu de blog, et ils sont généralement organisés avec des catégories et des étiquettes.

Les pages sont du contenu unique ou autonome qui est pérenne, comme une page « À propos » ou une page « Contact », par exemple.

Dans WordPress, les pages peuvent être hiérarchiques, ce qui signifie que vous pouvez les organiser avec des pages parentes et des pages enfants. Par exemple, vous pourriez vouloir créer une page Produit avec des pages enfants pour les Fonctionnalités, les Tarifs et le Support.

Pour créer une page enfant, suivez notre guide sur comment créer une page enfant dans WordPress.

Après avoir créé vos pages parentes et enfants, vous pourriez vouloir lister les pages enfants sur la page parente principale.

Désormais, une façon simple de le faire est d'éditer manuellement la page parente et d'ajouter une liste de liens individuellement.

Ajouter manuellement des liens de sous-pages

Cependant, vous devrez éditer manuellement la page parente chaque fois que vous ajoutez ou supprimez une page enfant.

Ne serait-il pas plus agréable si vous pouviez simplement créer une page enfant, et qu'elle apparaisse automatiquement comme un lien sur la page parente ?

Cela étant dit, examinons d'autres moyens dynamiques pour afficher rapidement une liste de pages enfants sur la page parente dans WordPress. Nous vous montrerons trois méthodes, afin que vous puissiez choisir celle qui vous convient le mieux :

Méthode 1. Afficher les pages enfants sur la page parente à l'aide d'un plugin

Cette méthode est le moyen le plus simple d'afficher les pages enfants sur une page parente, et elle est recommandée pour tous les utilisateurs.

Tout d'abord, vous devez installer et activer le plugin Page-list. Pour plus de détails, consultez notre guide étape par étape sur comment installer un plugin WordPress.

Une fois activé, vous devez modifier la page parente et simplement ajouter le shortcode suivant à l'endroit où vous souhaitez afficher la liste des pages enfants.

[sous-pages]

Vous pouvez maintenant enregistrer votre page et la prévisualiser dans un nouvel onglet de navigateur. Vous remarquerez qu'elle affiche une simple liste à puces de toutes les pages enfants.

Liste simple de liens de sous-pages

Si vous le souhaitez, vous pouvez ajouter du CSS personnalisé pour modifier l'apparence de la liste.

Voici quelques exemples de CSS que vous pouvez utiliser comme point de départ.

ul.page-list.subpages-page-list {
    list-style: none;
    list-style-type: none;
    background-color: #eee;
    border: 1px solid #CCC;
    padding: 20px;
}

Après avoir appliqué votre CSS personnalisé, vous pouvez prévisualiser la page parente.

Voici à quoi cela ressemblait sur notre site WordPress de test :

Liste de sous-pages avec CSS

Le plugin fournit un ensemble de paramètres de shortcode qui vous permettent de définir la profondeur, d'exclure des pages, le nombre d'éléments, et plus encore.

Pour plus de détails, veuillez consulter la page du plugin pour une documentation détaillée.

Méthode 2. Lister les pages enfants pour une page parente à l'aide de code

Cette méthode est un peu avancée et nécessite l'ajout de code à votre site WordPress. Si vous ne l'avez jamais fait auparavant, consultez notre guide sur comment copier et coller du code dans WordPress.

Pour lister les pages enfants sous une page parente, vous devez ajouter le code suivant dans un plugin d'extraits de code ou dans le fichier functions.php de votre thème :

function wpb_list_child_pages() { 
 
global $post; 
 
if ( is_page() && $post->post_parent )
 
    $childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->post_parent . '&echo=0' );
else
    $childpages = wp_list_pages( 'sort_column=menu_order&title_li=&child_of=' . $post->ID . '&echo=0' );
 
if ( $childpages ) {
 
    $string = '<ul class="wpb_page_list">' . $childpages . '</ul>';
}
 
return $string;
 
}
 
add_shortcode('wpb_childpages', 'wpb_list_child_pages');

Chez WPBeginner, nous recommandons toujours d'ajouter du code dans WordPress avec le plugin WPCode.

WPCode vous permet d'ajouter facilement du code personnalisé sans modifier les fichiers de votre thème, vous n'avez donc pas à vous soucier de casser votre site.

WPCode

Tout d'abord, vous devez installer et activer le plugin gratuit WPCode. Pour des instructions étape par étape, consultez ce guide sur comment installer un plugin WordPress.

Une fois le plugin activé, accédez à Extraits de code » Ajouter un extrait depuis votre tableau de bord WordPress.

De là, placez votre souris sur l’option ‘Ajouter votre code personnalisé (Nouveau extrait)’ et cliquez sur le bouton ‘Ajouter un extrait personnalisé’.

Ajouter un nouveau fragment de code personnalisé dans WPCode

Ensuite, vous devez choisir ‘Extrait PHP’ comme type de code dans la liste des options qui apparaissent à l’écran.

Sélectionner un extrait PHP comme type de code

Ensuite, ajoutez un titre pour votre extrait, qui peut être n’importe quoi pour vous aider à vous souvenir de l’utilité du code.

Maintenant, collez simplement le code ci-dessus dans la boîte ‘Aperçu du code’.

Coller le code dans la boîte d'aperçu du code

Après cela, basculez simplement le commutateur de ‘Inactif’ à ‘Actif’ et cliquez sur le bouton ‘Enregistrer l’extrait’ en haut de la page.

Activez et enregistrez votre extrait de code personnalisé

Ce code vérifie d’abord si une page a un parent ou si la page elle-même est un parent.

S’il s’agit d’une page parente, il affiche les pages enfants qui lui sont associées. S’il s’agit d’une page enfant, il affiche toutes les autres pages enfants de sa page parente.

Enfin, s’il s’agit simplement d’une page sans page enfant ou parente, le code ne fera rien. Dans la dernière ligne du code, nous avons ajouté un shortcode, vous pouvez donc facilement afficher les pages enfants sans modifier vos modèles de page.

Pour afficher les pages enfants, ajoutez simplement le shortcode suivant dans une page ou un widget de texte dans la barre latérale :

[wpb_childpages]

N’oubliez pas d’enregistrer vos modifications et de les prévisualiser dans un onglet de navigateur. Voici comment cela apparaît sur notre site de test.

Liste de liens simple

Vous pouvez maintenant styliser cette liste de pages en utilisant du CSS personnalisé.

Voici un exemple de code CSS que vous pouvez utiliser comme point de départ :

ul.wpb_page_list {
    list-style: none;
    list-style-type: none;
    background-color: #eee;
    border: 1px solid #CCC;
    padding: 20px;
}

Méthode 3. Afficher dynamiquement les pages enfants sans aucun shortcode

L’utilisation de shortcodes est pratique, mais le problème est que vous devrez ajouter des shortcodes dans toutes les pages qui ont des pages parentes ou enfants.

Vous pourriez finir par avoir des shortcodes dans de nombreuses pages, et parfois vous pourriez même oublier de l’ajouter.

Une meilleure approche serait de modifier le fichier de modèle de page dans votre thème, afin qu’il puisse afficher automatiquement les pages enfants.

Pour ce faire, vous devez modifier le modèle principal page.php, ou créer un modèle de page personnalisé dans votre thème.

Vous pouvez modifier votre thème principal, mais ces modifications disparaîtront si vous changez ou mettez à jour votre thème. C'est pourquoi il serait préférable de créer un thème enfant, puis d'apporter vos modifications dans le thème enfant.

Dans votre fichier de modèle de page, vous devez ajouter cette ligne de code là où vous souhaitez afficher les pages enfants.

<?php wpb_list_child_pages(); ?>

C'est tout. Votre thème détectera désormais automatiquement les pages enfants et les affichera dans une liste simple.

Vous pouvez personnaliser les styles avec CSS et le formatage.

Voici un exemple de la façon dont le site OptinMonster affiche la page parente et les sous-pages :

Exemple de sous-pages OptinMonster

Nous espérons que cet article vous a aidé à lister les pages enfants d'une page parente dans WordPress. Vous pourriez également consulter notre guide sur les pages les plus importantes à créer sur un nouveau site WordPress, et notre comparaison des meilleurs constructeurs de pages WordPress glisser-déposer pour créer des mises en page personnalisées sans aucun code.

Si cet article vous a plu, abonnez-vous à notre chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous retrouver sur Twitter et Facebook.

Avis : Notre contenu est financé par nos lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons percevoir une commission. Voir comment WPBeginner est financé, pourquoi c'est important et comment vous pouvez nous soutenir. Voici notre processus éditorial.

La boîte à outils WordPress ultime

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tout professionnel devrait posséder !

Interactions des lecteurs

80 CommentsLeave a Reply

  1. Bonjour, cela fonctionne, sauf que le parent s'affiche aussi, comment puis-je afficher uniquement les pages enfants, merci

    • La méthode la plus simple pour ce que vous semblez vouloir serait de ne pas avoir de contenu sur la page parente et de n'avoir votre contenu que dans les pages enfants.

      Admin

  2. Bonjour Wpbeginner,

    S'il vous plaît, comment puis-je trier toutes les pages enfants par ordre alphabétique sur la page parente. J'ai suivi toutes les étapes mais les sous-pages s'affichent de manière aléatoire sur la page parente.

    En attente de réponse. ….Merci

    • Vous changeriez les deux occurrences de menu_order dans notre code par : post_title

      Admin

  3. Puis-je attribuer une classe CSS à cette fonction ? Ainsi, lorsque j'apporterai des modifications CSS aux éléments ul, cela n'affectera pas les autres ul du site.
    Ou toute autre solution simple pour cela ?

  4. Bonjour l'équipe WPB,

    Merci beaucoup pour cet extrait et ce tutoriel.

    Cela m'a fait gagner beaucoup de temps et m'a aidé.

    Avec mes sincères salutations,
    Keshav Murthy

  5. J'ai installé le plugin code snippets dans WordPress 4.9.8

    J'ai copié le code de https://014.leahstevensyj.workers.dev/wp-tutorials/how-to-display-a-list-of-child-pages-for-a-parent-page-in-wordpress/#respond et l'ai ajouté à un nouveau snippet dans code snippets.

    J'ai créé une page, puis une autre page à laquelle j'ai attribué la première page comme page parente.

    La relation enfant-parent est visible dans la liste des pages dans le menu déroulant des attributs.

    Lorsque j'ouvre la page parente, je ne vois rien qui indique une page enfant.

    J'ai ensuite essayé d'utiliser la page functions.php.

    J'ai ajouté le code copié de https://014.leahstevensyj.workers.dev/wp-tutorials/how-to-display-a-list-of-child-pages-for-a-parent-page-in-wordpress/#respond à la fin du code sur la page functions.

    Lorsque j'ouvre la page parente, elle ne s'affiche pas. Ce qui s'affiche est un message d'erreur indiquant qu'il y a du code inattendu.

    J'ai restauré la page functions.php à son état d'origine.

    Quelles modifications dois-je apporter à ce que j'ai essayé de faire ?

    • Bonjour Gary,

      Assurez-vous de publier la page enfant avant de tester le code. Copiez également le code à nouveau attentivement pour vous assurer de ne pas copier les numéros ou tout caractère inattendu.

      Admin

  6. J'ai une question. J'ai ajouté des sous-pages dans une page parente, mais lorsque j'ouvre le site sur mobile et que je clique sur la page parente, elle s'ouvre vide. Pour voir les sous-pages déroulantes, il faut maintenir le bouton de la page parente enfoncé. Comment puis-je résoudre ce problème ? Je ne veux pas que cette page vide s'ouvre. Je veux que si l'on touche la page parente, le menu déroulant s'ouvre.
    Veuillez me suggérer comment faire.

Laisser un commentaire

Merci d'avoir choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.