Le problème passé sous silence des shortcodes

Écrit par

dans

The-Unspoken-Problem-of-Shortcodes

Les shortcodes sont l’un des piliers de WordPress. Ils constituent le pont entre les développeurs et les créateurs de sites, permettant d’insérer des éléments de contenu élaborés pratiquement n’importe où. Les créateurs d’extensions adorent les shortcodes, car ils offrent plus de flexibilité quant à la manière et à l’endroit où leurs utilisateurs affichent leur contenu.

Si vous ne savez pas ce que sont les shortcodes ni à quoi ils ressemblent, il s’agit de ces fragments de texte archaïques semblables à du code, entourés de crochets. Ils ressemblent à ceci :

Celui-ci en particulier s’appelle le shortcode embed et est intégré par défaut dans WordPress. Il permet d’intégrer la vidéo de l’URL dans votre contenu. Copiez et collez simplement le shortcode ci-dessus sur votre site si vous souhaitez l’essayer.

En coulisses, lorsque WordPress rencontre un shortcode dans votre contenu, il le traite et le convertit en autre chose. Dans notre exemple ci-dessus, dès qu’un shortcode

est détecté, WordPress récupère l’URL contenue dans le shortcode et la compare à une liste de fournisseurs de contenu pris en charge. Lorsqu’il en trouve un, il récupère alors le code d’intégration iframe approprié et l’affiche à la place.

Alors, quel est le problème ici ? Cela semble assez simple : il suffit de saisir un court texte entre crochets et le tour est joué.

C’est là qu’intervient l’API Shortcode..

Des shortcodes à foison

L’API Shortcode ouvre la création de shortcodes aux développeurs. Grâce à cela, les développeurs peuvent ajouter leurs propres shortcodes au sein de leurs extensions.

C’est formidable : désormais, avec un simple petit extrait de code (d’où le nom « shortcode »), les débutants comme les utilisateurs avancés peuvent insérer virtuellement n’importe quel type de contenu où ils le souhaitent.

Par défaut, WordPress ne propose qu’une poignée de shortcodes. Il est facile de les taper de mémoire car ils sont très peu nombreux. Mais si vous installez quelques extensions, le nombre de shortcodes grimpe rapidement à une douzaine ou plus, et dans certains cas à plus d’une centaine. Chaque shortcode possède son propre ensemble d’attributs et ses instructions d’utilisation. Chaque extension dispose très probablement d’une forme de documentation expliquant le fonctionnement de tous ses shortcodes et répertoriant tous les paramètres disponibles pour chacun d’eux. Mais il faudrait être fou pour essayer de mémoriser tous les shortcodes et leurs attributs.

Le problème est qu’il n’existe aucun endroit centralisé pour découvrir tous les shortcodes disponibles sur votre site et savoir comment les utiliser.

Certains tentent de résoudre le problème

Certaines extensions tentent de résoudre ce problème en présentant tous leurs propres shortcodes dans un menu déroulant facile d’accès. Cliquer sur l’un d’eux affiche alors le shortcode, accompagné de tous les attributs possibles. Il n’est plus nécessaire de le mémoriser, ce qui est une bonne chose.

Screen-Shot-2016-06-22-at-11.27.09-AM

D’autres vont plus loin et ajoutent un formulaire contextuel de réglages avec des cases à cocher et des sélecteurs de couleur pour renseigner les attributs du shortcode.

Screen-Shot-2016-06-22-at-11.28.54-AM

Cette solution fonctionne en quelque sorte. Cependant, chaque extension n’énumère que ses propres shortcodes. Ainsi, si chaque extension crée sa propre version de sélecteur de shortcodes, vous risquez inévitablement de vous retrouver avec plusieurs sélecteurs de shortcodes sur votre écran (cela m’est déjà arrivé).

Screen-Shot-2016-06-22-at-11.22.41-AM

En d’autres termes, chaque extension fait ce qu’elle veut dans son coin et implémente sa propre solution pour ses propres shortcodes. Certaines extensions ajoutent soit un nouveau bouton à côté du bouton « Ajouter un média », soit un nouveau bouton dans TinyMCE.

Vous pourriez alors vous demander : « Pourquoi ne pas également rassembler les shortcodes des autres extensions et les inclure aussi dans votre menu déroulant / sélecteur de shortcodes ? » Eh bien, c’est exactement ce que j’ai pensé. Mais c’est plus facile à dire qu’à faire. Je vais vous expliquer pourquoi dans un instant, mais examinons d’abord à quoi ressemblerait une solution idéale.

La solution idéale

Le plan parfait serait de créer une extension qui rassemble tous les shortcodes disponibles sur votre site, vous présente la liste et vous aide également à remplir tous les attributs. Et chaque fois que vous installeriez une nouvelle extension, tous ces nouveaux shortcodes introduits vous seraient également présentés.

Imaginez un emplacement centralisé où tous vos shortcodes seraient regroupés pour un accès facile. Chaque shortcode décrirait son rôle et l’extension à laquelle il appartient. Ensuite, pour chaque attribut disponible, imaginez que chacun dispose d’un libellé, d’un moyen adapté pour choisir une valeur et d’une description. Vous verriez des menus déroulants, des sélecteurs de couleur, des boutons radio, des boutons à bascule et tout le reste.

Une telle solution faciliterait la vie des créateurs de sites web et de contenu. Fini de consulter différentes documentations ou différentes parties de votre tableau de bord d’administration juste pour copier un shortcode généré pour un diaporama que vous souhaitez utiliser.

Le bémol

Malheureusement, il est assez difficile de faire quelque chose de ce genre actuellement. Il n’existe aucun moyen infaillible de connaître tous les détails d’un shortcode. Vous pouvez obtenir une liste de tous les shortcodes, mais seulement leurs balises/noms réels ; vous ne pouvez obtenir aucun détail supplémentaire à leur sujet, comme une liste d’attributs, ce qu’ils font et leurs types – comme une chaîne de caractères, une couleur ou un nombre. Vous ne pouvez pas non plus obtenir un semblant de description pour chaque attribut.

Avis aux développeurs : oui, il existe un troisième argument récemment ajouté à la fonction shortcode_atts, mais ce n’est pas un argument obligatoire. Par conséquent, à moins que chaque développeur d’extensions au monde ne l’implémente, nous n’aurons toujours aucun moyen sûr de déterminer tous les attributs d’un shortcode.

L’API Shortcode ne fournit aucun mécanisme pour ajouter des descriptions de shortcodes, typer les attributs ou fournir des descriptions d’attributs. Et à moins que WordPress lui-même n’ajoute un espace centralisé pour accéder aux shortcodes, je doute qu’un tel mécanisme voie le jour.

Conclusion

Pour l’instant, la tâche d’organiser les shortcodes est laissée à chaque développeur. À moins qu’une méthode centralisée ne soit développée au sein de WordPress, attendez-vous à continuer de voir de multiples boutons « Ajouter un shortcode » dans votre administration. La question de savoir si une telle fonctionnalité devrait être intégrée au cœur de WordPress fait l’objet d’un autre grand débat en soi.

Une alternative

Il existe des extensions de constructeur de page qui abordent cela différemment. Au lieu de détecter les shortcodes de manière programmatique, elles disposent de mappeurs de shortcodes où les utilisateurs peuvent renseigner manuellement chaque détail d’un shortcode. Une fois cela fait, il devient disponible au sein du constructeur de page. Bien que  cela fonctionne, ils ne sont disponibles que sur votre propre site.

Chez Page Builder Sandwich, nous créons actuellement quelque chose qui pourra, nous l’espérons, résoudre ce casse-tête des shortcodes. Abonnez-vous à notre newsletter ci-dessous pour être tenu informé de nos progrès.