PubliĂ© par le 7 juillet 2014 ‱ 29 Commentaires

Terminons la semaine avec un article d’un nouveau cuistot : Jordan Bourget.

Cet article concerne un plugin bien pratique : Widget Logic. Je ne vous en dis pas plus et laisse la parole Ă  Jordan :

Un des gros avantages de WordPress, c’est certainement l’utilisation des plugins et des leurs widgets (quand ils en ont !). Ils sont trĂšs faciles Ă  mettre en place , modulables et avec pas mal de possibilitĂ©s.

Pour savoir comment fonctionne les widgets, je vous recommande de lire cet article.

C’est bien simple, si une fonctionnalitĂ© vous manque dans votre site WordPress vous trouverez toujours un plugin pour y rĂ©pondre
 par contre l’inconvĂ©nient c’est que l’on trouve de tous, du gratuit et du payant, du bon et surtout du trĂšs moyen.

C’est pourquoi aujourd’hui je vais vous conseiller un plugin qui rĂ©pond a l’un des premiers problĂšmes qui se pose quand on commence vraiment Ă  dĂ©velopper sous WordPress :

Comment faire pour que ce widget n’apparaisse que sur cette page ?

Nous allons donc traiter ici du cas de « Widget Logic Â» une petite extension WordPress aussi discrĂšte que puissante.

Elle est utile dans toutes sortes de situations et surtout tous types de sites web. Voici quelques exemples d’utilisations :

  • Afficher un second menu de navigation pourra aider vos visiteurs Ă  mieux naviguer au sein d’une certaine catĂ©gorie,
  • Afficher  un nuage de mots-clĂ©s uniquement quand les visiteurs sont sur un article prĂ©cis,
  • Masquer le widget « panier Â» de votre boutique quand les visiteurs sont sur le blog, etc.

Bref, beaucoup de choses sont possibles.

Alors, comment ça marche ?

Il faut savoir que selon le plugin installĂ©, les effets dans l’administration seront soit rapidement visibles soit trĂšs discrets.

Pour que vous puissiez voir ce que Widget Logic a changĂ© je vous invite Ă  aller dans le menu « Apparence Â» et le sous-menu « Widgets Â».

Cliquez ensuite sur l’un des widgets dĂ©jĂ  placĂ©s dans les diffĂ©rentes « zones de widget Â» (ou sidebars), vous verrez qu’un nouveau champ intitulĂ© « Widget Logic Â» est apparu.

Champ Widget Logic

C’est dans ce champ que nous allons placer des instructions pour dĂ©terminer si notre widget sera ou non affichĂ© sur telle page, tel article, telle archive, etc.

Vous allez voir que les possibilités sont infinies.

Les Conditionnal Tags

Les conditionnal tags sont des fonctions de WordPress qui permettent de reconnaĂźtre une situation d’affichage particuliĂšre. Ce sont eux qu’il faudra placer dans le champ Widget Logic prĂ©sent dans chacun des widgets.

Pour commencer, gardez en tĂȘte qu’un widget dont le champ Widget Logic reste vide s’affichera sur toutes les pages.

Passons en revue la plupart des conditionnal tags que vous pourrez utiliser dans Widget Logic et ce qu’ils permettent :

CONDITIONNAL TAGEFFET
is_single()Affiche le widget quand le visiteur se trouve sur la page d’un article.
is_single(17)Affiche le widget seulement sur l’article dont l’ID est 17.
is_single(‘coucou’)Affiche le widget seulement sur l’article dont le slug est ‘coucou’. Le slug est l’identifiant textuel contenu dans l’url.
is_single(‘La vie est belle’)Affiche le widget seulement sur l’article dont le titre est ‘La vie est belle’.
is_single(array(’17’,’coucou’,’La vie est belle’))Affiche le widget seulement sur les articles dont l’ID, le slug est ‘coucou’ et le titre est ‘La vie est belle’.
is_category()Affiche le widget sur les pages de catĂ©gories.
is_category(17)Affiche le widget sur la page de la catĂ©gorie dont l’identifiant est 17.
is_category(‘sport’)Affiche le widget sur les pages de catĂ©gories dont le slug ou le nom est ‘sport’.
is_tag()Affiche le widget sur les pages de mots-clĂ©s.
is_tag(7)Affiche le widget sur les pages de mots-clĂ©s dont l’ID est 7.
is_sticky()Affiche le widget sur les articles ou la mention « mettre cet article en avant Â» est cochĂ©e.
is_page()Affiche le widget seulement pour les pages. On peut cibler des pages en mettant leur nom, titre ou ID entre les parenthĂšse comme on l’a fait pour is_single().
is_home()Affiche le widget sur la page qui affiche tous les articles. Autrement dit, si dans l’administration vous avez choisi une page comme « page des articles Â», votre widget ne s’affichera que sur cette page.
is_front_page()Affiche le widget sur la page que vous avez dĂ©finie comme page d’accueil via l’administration, que ce soit une page statique ou que votre page d’accueil affiche les derniers articles.
is_author()Affiche le widget sur les pages auteurs.
is_search()Affiche le widget sur les pages de résultats de recherche.
is_404()Affiche le widget sur les pages 404, ce qui correspond aux pages d’erreur (lorsque aucune page ne correspond Ă  l’adresse que vous avez tapĂ© dans votre navigateur).
is_archive()Affiche le widget sur les pages d’archives (catĂ©gories, mots-clĂ©s, dates, auteurs)
is_date()Affiche le widget sur les pages d’archives datĂ©s (annuelles, mensuelles, journaliĂšres, etc.).
is_user_logged_in()Affiche le widget uniquement aux utilisateurs connectés.

Il existe encore d’autres possibilitĂ©s pour cibler d’autres types de pages. Vous pouvez aller jeter un coup d’Ɠil sur cette page (en anglais) pour dĂ©couvrir tous les conditionnal tags existants Ă  ce jour et ce qu’ils permettent de cibler.

Combiner plusieurs conditions

Et voilĂ  maintenant la raison qui, avec les conditionnal tags, fait que j’utilise ce plugin lĂ  et pas un autre pour gĂ©rer l’affichage des widgets sur mes sites web.

En effet, Widget Logic supporte les opĂ©rateurs logiques « ET » (&&), « OU » (||) et « NE PAS Â» (!) ce qui va nous permettre d’accroĂźtre de maniĂšre simple les possibilitĂ©s offertes.

Pour  plusieurs conditionnal tags, vous allez donc devoir utiliser les opĂ©rateurs logique « et Â», « ou Â» ou « ne pas Â».

Voici quelques exemples pour vous montrer comment cela fonctionne :

  • Imaginons que vous voulez afficher un widget mĂ©tĂ©o uniquement sur un article traitant des dĂ©rĂšglements climatiques. Cet article possĂšde l’ID 14. Il faut mettre « is_single(14) » dans le champ Widget Logic.
  • Maintenant, si l’on dĂ©sire que notre widget s’affiche partout sauf sur la page statique dĂ©finie comme page d’accueil, il faut donc mettre « !is_front_page() » dans le champ Widget Logic du widget concernĂ©. Cela signifie « ne pas afficher le widget si la page actuelle est la page dĂ©finie comme page d’accueil ».
  • Dernier exemple, si l’on veut afficher notre widget seulement sur les articles mis en avant et classĂ©s dans la catĂ©gorie « Sport », il faut mettre « is_sticky() && is_category(‘Sport’) » dans le champ Widget Logic. Cela veut dire « afficher le widget que si l’article a Ă©tĂ© mis en avant ET est classĂ© dans la catĂ©gorie Sport ».

Bien sĂ»r, il est possible de complexifier les choses pour afficher vos widgets sur des pages bien prĂ©cises.

Toutefois, les conditionals tags et les opĂ©rateurs logiques prĂ©sentĂ©s dans cet article vous permettront de faire pas mal de combinaisons avec vos widgets.

Allez-vous utiliser ce plugin pour personnaliser l’affichage des widgets sur votre site ? Si oui, recherchez « Widget Logic » dans le champ de recherche des extensions (voir cet article pour savoir comment installer un plugin).