• Skip to primary navigation
  • Skip to content
  • Skip to footer

Tobal.fr

Tech, Code & Expérience

  • Applications
  • Astuces
  • Code
  • Mac
  • Productivité
  • Motivation
  • Psychologie
  • Inspiration

Afficher un widget WordPress uniquement sur certaines pages

13 septembre 2016 by Thinh 7 Comments

Ah, un petit tutoriel sur WordPress, ça faisait longtemps !

Les widgets de WordPress sont un des éléments qui ont fait le succès du CMS le plus populaire au monde.

Ce système de modules, très pratique, permet de placer des blocs proposant du contenu (texte, HTML, images…) ou des fonctionnalités (formulaires, fil d’actualité Twitter, Facebook like box) n’importe où facilement à l’aide de glisser-déposer.

Pourtant, le comportement par défaut fait que, lorsque par exemple vous placez un widget dans votre sidebar, celui-ci apparaîtra automatiquement sur l’ensemble de votre blog.

Mais si jamais vous souhaitez afficher un widget uniquement sur une page en particulier, comment faire ? Je vais vous donner 3 méthodes pour y parvenir.

Créer et Utiliser Une Sidebar Différente

Si vous connaissez un peu le principe des thèmes WordPress, vous devez savoir que par défaut, il faut au moins un fichier sidebar.php pour contenir les widgets. Ce fichier contient la fonction get_sidebar() pour afficher les widgets.

Une solution simple est alors de créer plusieurs fichiers de sidebar afin de pouvoir choisir, dans le panneau d’administration de WordPress, dans laquelle placer nos widgets.

Par exemple, admettons que vous ayez une page Contact, dans laquelle vous voudriez avoir une sidebar différente des autres pages. Vous pouvez alors créer un nouveau fichier de sidebar, en l’appelant par exemple sidebar-contact.php.

Ensuite, si ce n’est pas déjà le cas, créez également un template pour la page contact (contact.php. Vous devez utiliser l’identifiant de la page comme nom de fichier). À l’intérieur, là où vous voulez placer votre sidebar, insérez le code suivant:
get_sidebar('contact');

Ainsi, tous les widgets que vous placerez dans la sidebar « Contact » apparaîtront uniquement sur la page de contact.

Utiliser les Tags Conditionnels

L’inconvénient de la première méthode, c’est qu’il faut créer au préalable un template personnalisé pour les pages dont vous souhaitez personnaliser la sidebar.

Une solution qui ne nécessite pas de créer de template consiste à utiliser les tags conditionnels.

En reprenant le même exemple, pour personnaliser la page de contact, il vous suffit modifier le fichier page.php, qui est le template par défaut de toutes les pages, et d’y ajouter ce code:
if ( is_page('contact') ) {
get_sidebar( 'contact' );
} else {
get_sidebar();
}

Ce code va vous permettre de n’afficher la sidebar « Contact » que sur la page de contact. Vous pouvez ainsi étendre le jeu de conditions pour afficher des sidebars supplémentaires en fonction d’autres pages.

Avec JetPack

Si vous ne connaissez pas JetPack, je vous conseille d’y jeter un coup d’oeil. Il s’agit d’une extension qui, en réalité, regroupe plusieurs plugins très pratique (qu’on retrouve lorsqu’on utilise WordPress.com).

Dans JetPack, activez le module Widget Visibility.

Puis, dans la page des widgets du panneau d’administration, vous devriez voir apparaître une nouvelle option dans les widgets, intitulé « Visibilité », qui va vous permettre de choisir sur quelle page afficher ou masquer un widget.

Notez que cette dernière méthode est intéressante pour deux raisons: premièrement, vous n’avez pas à toucher à vos fichiers PHP et deuxièmement, vous pourrez même choisir sur quel type de page afficher un widget (par exemple, sur la page d’erreur 404, sur les résultats de recherche, etc…).

J’espère que ces astuces vous seront utiles. Si vous avez des questions ou des doutes à ce sujet, n’hésitez surtout pas à poser des questions dans les commentaires.

Source: Hongkiat

Cet article t'a plu ?

Je te propose de t'abonner à ma liste email. Comme ça, tu recevras mes meilleurs articles directement dans ta boite mail.

Super ! Tu es inscrit.

Ton email a bien été ajouté à ma liste.

Dorénavant, tu recevras mes meilleurs articles par email.

Code widget,  wordpress

Reader Interactions

D'autres articles qui pourraient t'intéresser

L’importance d’avoir un thème WordPress rapide: comparaison de 20 thèmes populaires

optimisation, wordpressCode20 décembre 2016

12 plugins WordPress essentiels pour les développeurs

plugins, wordpressCode27 septembre 2016

Renommer le dossier wp-content de WordPress

wordpressCode21 juin 2016

Résoudre les problèmes de javascript dans l’admin WordPress

javascript, wordpressCode10 mai 2016

Serveur web Vagrant lent sous Windows (notamment avec Symfony) ? Voici la vraie solution

symfony, vagrantCode11 octobre 2016

Adminer, la solution alternative à phpMyAdmin pour gérer vos bases de données MySQL

adminer, mysql, phpmyadminCode4 octobre 2016

Un site qui regroupe la documentation des langages web les plus populaires

API, documentationCode2 août 2016

Web designer ou développeur web: quelle est la différence ?

Code14 juin 2016

Plus de 500 ebooks gratuits pour apprendre la programmation

ebook, programmationCode17 mai 2016

Optimiser son site WordPress en détectant les plugins qui le ralentissent

plugins, wordpressCode26 avril 2016

Installation de Serveur Web avec NGINX, PHP5, MySQL, FTP sur Serveur Dédié

debian, ftp, linux, mysql, nginx, phpCode8 mars 2016

Retrouver un environnement Linux sur Windows (console bash, GIT)

bash, git, linux, windowsCode9 février 2016

Comments

  1. supermotard60 says

    24 octobre 2017 at 19 h 14 min

    Merci ce tuto m’a bien servi et avec le widget visibility c’est super simple.

    Répondre
  2. TitansCity says

    26 octobre 2017 at 18 h 27 min

    Bonjour,

    En cherchant une solution, je suis tombé sur votre article et je me demandais :
    J’utilise un plug in SiteOrigin qui me permet d’intégrer des widgets dans les pages. Par exemple, j’ai utilisé un widget « accordeon » auquel j’ai donné un nom de Widget ID.
    Est-il possible de réutiliser ce widget en ajoutant le widget ID dans une page ? Si oui, faut-il passer jet pack ou y’-t-il un code « commun » pour faire appel à un widget dans une page ?

    Répondre
    • tobal says

      29 octobre 2017 at 19 h 04 min

      Bonjour,

      le plus simple est d’utiliser le plugin Widget-on-Pages.

      Répondre
  3. anadeluna says

    18 septembre 2018 at 16 h 02 min

    Premier tuto que je trouve qui propose autre chose que la solution plugin, merci!

    Répondre
  4. Emmanuel says

    20 septembre 2018 at 8 h 17 min

    Bonjour,
    Super tuto … Merci beaucoup
    Bonne journée

    Répondre
  5. Toto1er says

    17 novembre 2018 at 16 h 59 min

    Salut très bon tuto.
    avec jetpack c’est un plug-in gratuit?

    Répondre
    • Thinh says

      17 novembre 2018 at 17 h 55 min

      Oui avec une option payante mais la version gratuite marche déjà très bien

      Répondre

Laisser un commentaire Annuler la réponse

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

Footer

Social

  • Voir le profil de @tobalsan sur Twitter

Copyright © 2019 · Business Pro Theme on Genesis Framework · WordPress · Log in