skip to Main Content

Comment mettre à jour automatiquement les menus sur WordPress

Divi : le thème WordPress le plus facile à utiliser

Divi : Le meilleur thème WordPress de tous les temps !

Avec plus de 600.000 téléchargements, Divi est le thème WordPress le plus populaire au monde. Il est complet, facile à utiliser et livré avec plus de 62 templates gratuits. [ Recommandé ]

Lorsque le système du menu de navigation a été publié avec WordPress 3.0, ce fut l’un des facteurs qui ont transformés WordPress d’une plateforme de blogging en un puissant CMS.

Cela signifiait que vous pouvez ajouter n’importe quel contenu que vous vouliez aux menus de navigation de votre site web, y compris les liens personnalisés. L’interface « drag and drop » signifiait que n’importe qui pouvait créer son propre menu personnalisé sans aucune compétence de codage.

Mais parfois, vous ne souhaitez pas compter sur cela. Si vous développez un site web pour un client qui va ajouter des pages à son site web, il est peu probable qu’il mette à jour le(s) menu(s) de navigation quand il le fait ou ne possède pas les compétences nécessaires.

C’est donc là qu’un menu de navigation automatisé devient utile.

Dans ce tutoriel, je vais vous montrer comment créer un menu de navigation automatisé qui affiche toutes les pages de votre site web, ainsi que les pages enfant affichées comme entrées de deuxième niveau dans le menu de navigation.

Vous pourrez ensuite ajouter ce code à l’en-tête de la page de votre thème, à votre barre latérale ou à votre pied de page si vous le souhaitez, et cela affichera à vos utilisateurs des liens qui se mettent automatiquement à jour lorsqu’un nouveau contenu est ajouté à votre site web.

Mais, si vous n’avez jamais installé WordPress découvrez Comment installer un blog WordPress en 7 étapes et Comment rechercher, installer et activer un thème WordPress sur votre blog 

Ensuite revenons vers ce pourquoi nous sommes là.

Voici ce dont vous aurez besoin pour automatiser les menus de navigation WordPress :

  • Une installation de développement ou de test de WordPress, avec quelques pages et sous-pages ajoutées
  • Un éditeur de code.

Configuration du code

Je vais ajouter ce code à un plugin afin qu’il soit permanent, même si je change de thème WordPress. De cette façon, je peux ajouter la fonction de mon plugin dans mon thème pour ajouter le menu de navigation où je souhaite. Si votre thème WordPress comporte des « hooks », vous pouvez utiliser un ou plusieurs pour injecter ce code.

Consultez également notre liste de 10 plugins WordPress pour créer un compte à rebours

Si vous travaillez avec un thème WordPress tiers qui n’a pas de Hooks, vous devrez ajouter un code au thème. Ne le codez pas directement dans le thème: créez plutôt un thème enfant et ajoutez votre code à cela. Créez simplement un duplicata du fichier de modèle de thème à partir du thème principal que vous souhaitez modifier, ajoutez-le à votre thème enfant et modifiez-le.

Première étape

La première étape consiste à créer le plugin. Je crée un dossier dans « wp-content/plugins ». La création d’un dossier signifie que je peux ajouter plus de fichiers au plugin à l’avenir si je le dois, comme une feuille de style ou des fichiers d’inclusion.

D’abord, vous devez ajouter le code d’ouverture de votre plugin, dans les commentaires, pour dire à WordPress ce que c’est :

<?php
/**
 * Plugin Name: Plugin
 * Plugin URI: http://blogpascher.com
 * Description: Plugin WordPress
 * Version: 1.0
 * Author: Herve
 * Author URI: http://blogpascher.com
 *
 */

Activez maintenant votre plugin.

Ensuite, si vous utilisez un thème enfant, configurez-le. J’utilise le thème enfant du thème Twenty Seventeen – voici ma feuille de style:

<?php
/**
 * Plugin Name: Plugin
 * Plugin URI: http://blogpascher.com
 * Description: Plugin WordPress
 * Version: 1.0
 * Author: Herve
 * Author URI: http://blogpascher.com
 *
 */

@import url( " ../twentyseventeen/style.css " );

Une fois que vous avez fait cela, si votre site web n’a pas encore de pages, ajoutez-en quelques-unes. Elles doivent avoir une structure à plusieurs niveaux. Voici à quoi ressemblent mes fausses pages :

création de page wordpress hierarchie

Maintenant, commençons à ajouter le code au plugin.

Créez Facilement votre site Web avec Elementor

Elementor vous permet de créer facilement n'importe quel design de site Web avec un look professionnel. Arrêtez de payer cher pour ce que vous pouvez faire vous-même. [ Gratuit ]

Création d’une fonction pour répertorier toutes les pages de manière hiérarchique

Nous allons utiliser la fonction « wp_list_pages() » pour récupérer toutes les pages et les répertorier avec des liens. Mais d’abord, nous devons définir certains arguments pour cela. Commencez par créer votre fonction et ajoutez ces arguments :

wpmu_list_pages() {wpmu_list_pages() {  $args = array( 'depth' => 2 );
}

Les arguments sont très simples – il n’y a qu’un seul pour le niveau de pages que nous souhaitons faire. Définir « 2 » signifie que les pages de haut niveau et leurs sous-pages seront affichées, mais pas plus.

Découvrez les 5 erreurs communes de connexion sur WordPress et leurs solutions

Maintenant, ajoutons la fonction « wp_list_pages() » après les arguments:

wp_list_pages( $args );

Voici la fonction complète:

wpmu_list_pages() {wpmu_list_pages() {  $args = array( 'depth' => 2 );
 wp_list_pages( $args );
}

Ajout de la fonction au thème

À l’heure actuelle, la fonction ne montre rien sur mon site web. Pour changer cela, nous devons ajouter une copie de l’en-tête du thème principal au thème enfant et éditer cela.

Consultez également : Comment protéger vos travaux WordPress sur les sites web de clients

Commencez par copier votre fichier d’en-tête dans votre thème enfant et ouvrez-le. Dans Twenty Seventeen, le code du menu de navigation se trouve dans « templates-parts/navigation/navigation-top.php », ce qui signifie que je dois ajouter une copie de ce fichier au même endroit dans mon thème enfant.

Découvrez pour aller plus loin Comment installer un thème enfant WordPress

Dans votre thème, il peut s’agir du fichier header.php qu’il faut copier.

Selon votre thème, le code du menu sera différent. Dans celui que j’utilise, c’est le code que je dois remplacer :

<?php wp_nav_menu( array(<?php wp_nav_menu( array( 'theme_location' => 'top', 'menu_id'        => 'top-menu', ) ); ?>

Modifiez le code de votre menu de navigation pour ajouter une nouvelle fonction, avec le code existant dans une déclaration « else{} » :

<?php  if ( function_exists( 'wpmu_list_pages' ) ) { wpmu_list_pages(); } else { wp_nav_menu( array( 'theme_location' => 'top', 'menu_id'        => 'top-menu', ) ); }  ?>

Les énoncés conditionnels sont importants: d’abord, il vérifie si la fonction que vous avez ajoutée à votre plugin est présente (c’est-à-dire si le plugin est activé) et, dans l’affirmative, il exécute la fonction à partir de cela. Sinon, il fonctionne normalement.

Consultez aussi notre guide sur Comment afficher des blocs d’annonces sur WordPress

Cherchez-vous les meilleurs thèmes et plugins WordPress ?

Téléchargez les meilleurs plugins et thèmes WordPress sur Envato et créez facilement votre site web. Déjà plus de 49.720.000 de téléchargements. [EXCLUSIF]

Observons maintenant mon site web:

exemple site wordpressLes liens apparaissent, mais il y a quelques problèmes. Je ne veux pas que soit affiché « Pages » en haut (ce qui est par défaut pour la fonction wp_list_pages() ) et je souhaite ordonner les pages plus efficacement. Vous verrez que la page d’accueil se trouve au milieu de la liste, ce qui n’est pas idéal.

Améliorer la fonction

Revenons au code du plugin et adaptons-le pour corriger ces problèmes.

Trouvez les arguments que vous avez déjà définis pour wp_list_pages():

$args = array(
 'depth' => 2
);

Et éditez-le:

$args = array($args = array( 'depth' => 2, 'title_li' => '<h3>' . __( 'Menu', 'bpc' ) . '</h3>', 'sort_column' => 'menu-order');

Cela ajoute deux arguments supplémentaires:

  • Le balisage avant la liste, qui indique maintenant « Menu » au lieu de « Pages ».
  • L’ordre dans lequel les pages sont affichées.

Vous devez revenir aux écrans d’édition de vos pages et définir l’ordre des pages pour chacune d’elles. Donnez à votre page d’accueil une valeur « 0 » et les autres pages de niveau supérieur sont supérieures à celles-ci. 

Lire aussi notre guide sur : Comment charger progressivement les commentaires Facebook et Disqus

Maintenant, lorsque vous affichez le menu, il ressemblera à ceci:

menu wordpress automatique

Vous pouvez également modifier l’ordre du menu des pages du deuxième niveau. Celui-ci n’apparaîtra jamais au-dessus des pages de niveau supérieur, ainsi vous pourrez commencer à 0 ou 1 pour chaque ensemble des sous-pages.

Découvrez aussi quelques plugins WordPress premium  

Vous pouvez utiliser d’autres plugins WordPress pour donner une apparence moderne et pour optimiser la connexion à votre blog ou site web.

Nous vous proposons donc ici quelques plugins WordPress premium qui vous aideront à le faire.

1. Gravity Forms

En tant que chef d’entreprise, permettre à vos clients de vous contacter devrait être votre priorité. Gravity Forms est le plugin de formulaire de contact le plus populaire sur WordPress.

gravityformsVous pouvez l’utiliser pour créer tout type de formulaire, comme un formulaire de devis, d’enquêtes, et plus encore.

Télécharger | Démo Hébergement Web

2. eForm

eForm est un constructeur de formulaire avancé et flexible qui peut être intégré à un site web WordPress existant. C’est une solution complète de gestion de formulaire. Ceci concerne entre autre les jeux-questionnaires, les enquêtes, la collecte de données, l’estimation de paiement et les commentaires des utilisateurs.eForm WordPress Form Builder plugin wordpress

Avec un tel concepteur de formulaire, il vous est possible de concevoir des formulaires de façon illimitée et de les gérer à partir de votre tableau de bord. Toutes les demandes sont stockées dans votre base de données, vous pourrez voir, suivre, analyser et agir sur les données que vous avez enregistrées.

Lire aussi notre article sur Comment le marketing de contenu affecte le référencement de votre blog

De plus, un portail utilisateur permet aux utilisateurs enregistrés d’examiner et de suivre également leurs demandes.

Télécharger | Démo | Hébergement Web

3. Mailster

Mailster est un plugin WordPress premium facile à utiliser et qui vous aidera à intégrer à votre site Web, une newsletter. Avec ce dernier, vous aurez la possibilité de créer, envoyer, et suivre vos campagnes sans trop de tracas.Mailster Email Newsletter Plugin for WordPress

Créez Facilement votre Boutique en ligne

Téléchargez gratuitement WooCommerce, le meilleurs plugins e-commerce pour vendre vos produits physiques et numériques sur WordPress. [Recommandé]

Ses principales fonctionnalités sont : la possibilité de suivre les mails ouverts, clics, souscriptions et taux de rebond, la possibilité de cibler vos campagnes, la gestion et la planification des campagnes, le support de 6 types d’auto-répondeurs, la création illimitée de formulaires d’inscription, une interface conviviale, la personnalisation de l’arrière-plan, la prise en charge du multilingue, et bien plus.

Télécharger | Démo | Hébergement Web

Ressources recommandées

Découvrez d’autres ressources recommandées qui vous accompagneront dans la création et la gestion de votre site web.

Conclusion

Voila ! C’est tout pour ce tutoriel, j’espère qu’il vous permettra d’ajouter des pages automatiquement à vos menus. Si vous avez un quelconque souci ou des suggestions en la matière, retrouvons nous dans la section commentaires pour en discuter.

Cependant, vous pourrez aussi consulter nos ressources, si vous avez besoin de plus d’éléments pour mener à bien vos projets de création de sites internet, en consultant notre guide sur la création de blog WordPress ou celui sur Divi : le meilleur thème WordPress de tous les temps.

Mais en attendant, partagez cet article sur vos différents réseaux sociaux.

… 

Cet article comporte 2 commentaires

  1. Bonjour,

    Merci pour l’article

    Mon problème est que je ne comprends pas vraiment la procédure à suivre dans la partie « Ajout de la fonction au thème », dois-je modifier le fichier « navigation-top.php » directement ? Dois-je le dupliquer dans mon thème enfant ? Dois je modifier la partie indiquée et l’ajouter dans mon fichier function.php ?
    Ou une autre solution x)
    Merci de m’éclairer sur ce point

    PS : le lien github nous amène vers un répertoire vide

    1. Bonsoir, il s’agit en effet de dupliquer le fichier dans le thème enfant. WordPress se charge du reste. Car il tentera de vérifier si le fichier existe sur le thème enfant et chargera donc le fichier du thème parent s’il n’existe pas.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Back To Top
19 Partages
Partagez14
Tweetez3
Enregistrer2