• Passer à la navigation principale
  • Passer au contenu principal

Tobal.fr

Découvre des applications qui déchirent

  • Applications
  • Astuces
  • Code
  • Mac
  • Productivité
  • Motivation
  • Psychologie
  • Inspiration
  • Show Search
Hide Search

Afficher un widget WordPress uniquement sur certaines pages

Thinh · 13 septembre 2016 · 9 commentaires

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

Code

Ça peut t'intéresser

Comment accélérer le chargement de son site WordPress en 3 étapes
Commencer une carrière de développeur web
Comment réinitialiser le mot de passe administrateur WordPress avec phpMyAdmin

Interactions du lecteur

Commentaires

  1. supermotard60 dit

    24 octobre 2017 à 19 h 14 min

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

    Répondre
  2. TitansCity dit

    26 octobre 2017 à 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 dit

      29 octobre 2017 à 19 h 04 min

      Bonjour,

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

      Répondre
  3. anadeluna dit

    18 septembre 2018 à 16 h 02 min

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

    Répondre
  4. Emmanuel dit

    20 septembre 2018 à 8 h 17 min

    Bonjour,
    Super tuto … Merci beaucoup
    Bonne journée

    Répondre
  5. Toto1er dit

    17 novembre 2018 à 16 h 59 min

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

    Répondre
    • Thinh dit

      17 novembre 2018 à 17 h 55 min

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

      Répondre
  6. Hermine dit

    8 janvier 2021 à 20 h 11 min

    Bonjour et merci pour ces explications hyper claires !
    J’ai bien suivi les manips, en revanche je ne comprends pas pourquoi ma sidebar n’apparait sur aucune page de mon site… Je me demandais si vous aviez une piste à suivre à ce sujet ?
    Merci d’avance !

    Répondre
    • Thinh dit

      10 janvier 2021 à 18 h 34 min

      Bonjour Hermine,

      pour votre sidebar ça va très probablement se jouer dans les réglages de votre thème. C’est quoi votre thème WordPress ?

      Thinh

      Répondre

Laisser un commentaire Annuler la réponse

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

Coucou ça va bien ? © 2023 · Monochrome Pro on Genesis Framework · WordPress · Se connecter