PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Tasse de Café : Shortcodes WordPress : gérer du contenu et autres détails

lundi 2 juin 2014 à 10:25

Nous avons déjà vu comment gérer des shortcodes sous WordPress pour faciliter l’insertion de certains contenus récurrents dans vos pages ou articles. Nos shortcodes utilisaient jusque-là différents attributs qui pouvaient d’ailleurs aussi être sans nom comme on l’a vu la dernière fois. Mais vous pensiez réellement qu’on avait fait le tour de l’API ? En réalité il nous faut encore voir quelques détails pour être sûrs d’avoir vu tout ce dont nous avons besoin, et c’est justement ce qu’on va faire ici.

WordPress

Du contenu dans nos shortcodes

Si vous êtes familier de WordPress, vous avez sûrement déjà croisé des shortcodes comme on en crée depuis les premières parties, mais pas seulement. Car un shortcode peut posséder une autre forme que celle utilisée jusque maintenant, une forme qui rappelle un peu les balises HTML : [shortcode]contenu[/shortcode].

Plutôt que de n’utiliser qu’une forme simple comme on le fait depuis le début, on peut en effet choisir d’utiliser une forme ouvrante / fermante. Ça a plusieurs avantages et inconvénients, et il vous revient de faire la part des choses pour savoir quelle solution vous conviendra le mieux.

Quoiqu’il en soit, gérer du contenu est d’une simplicité enfantine, tellement que c’en est presque risible de l’aborder : il suffit en effet de modifier notre fonction de callback, celle qui est appelée chaque fois que WordPress trouve l’un de nos shortcodes. Cette fonction peut en effet supporter un deuxième attribut qui contiendra justement le contenu envoyé. Peut-on seulement faire plus simple ?


function transformer_hello($atts, $contenu) {
	return 'Hello World! ' . $contenu;
}
?>

Dans cet exemple tiré de la première partie, nous modifions ce qui sera affiché en concaténant simplement le contenu du shortcode à « Hello World!« . Ainsi, si l’utilisateur envoie [hello]toto[/hello], alors le shortcode affichera automatiquement « Hello World! toto« .

C’est tout ce qu’il y a à savoir sur la gestion d’un contenu dans les shortcodes. Le détail intéressant, c’est que vous pouvez bien sûr utiliser du contenu et des attributs, afin de créer un shortcode des plus puissants. Et ça c’est cool.

Plusieurs shortcodes pour une même fonction de callback

Nous arrivons ici dans une situation qui pourrait paraître plus délicate, à savoir la gestion de plusieurs shortcodes dans une seule et unique fonction de callback. C’est effectivement possible et peut être utile si plusieurs shortcodes font presque la même chose par exemple. Mais c’est très loin d’être insurmontable à gérer.

Imaginons deux shortcodes [hello] et [plop] (admirez l’imagination dans ces noms, c’est tout simplement remarquable) et faisons en sorte que ce soit la même fonction qui soit appelée :


add_shortcode('hello', 'gerer_shortcode');
add_shortcode('plop', 'gerer_shortcode');
?>

Si on ne fait rien de plus, nos deux shortcodes seront exactement les mêmes, ce qui est un peu inutile. C’est pourquoi il existe un troisième (et dernier, enfin pour l’instant) argument possible pour les fonctions de callback : le nom du shortcode.

Dans l’appel de add_shortcode(), nous n’avons rien à faire, tout change dans la fonction de callback en question, où vous devez ajouter un troisième paramètre :


function transformer_hello($atts, $contenu, $tag) {
	return 'Hello World! ' . $contenu;
}
?>

Et c’est à peu près tout en fait. Le paramètre $tag contiendra le nom du shortcode choisi par l’utilisateur et vaudra dans notre cas « hello » ou « plop« . La suite dépend donc de vous et de la différence que vous voulez donner aux shortcodes.

À noter que le WordPress Codex référence un comportement étrange lorsqu’on gère plusieurs noms. Selon cette page, si deux shortcodes utilisent la même fonction de callback et que le nom du shortcode diffère de celui de la fonction, alors l’entrée 0 de l’argument $atts vaudra la chaîne de caractère repérée par WordPress, c’est-à-dire tout le shortcode envoyé par l’utilisateur. Je n’ai cependant pas réussi à reproduire ce comportement et il semblerait donc qu’il ait été corrigé depuis. Quoiqu’il en soit, il ne vous affectera que si vous devez gérer des attributs sans nom.

Un shortcode dans un shortcode dans un shortcode…

… dans un shortcode. Vous l’aurez compris, nous allons aborder ici la question de shortcodes imbriqués, qui ne se pose que si vous gérez du contenu pour vos shortcodes. Un exemple ? Prenons deux shortcodes, dont notre bon vieux [hello] accompagné d’un shortcode [monde] qui affiche le mot « monde« . Parce que faire compliqué ne sert à rien.

Modifions notre shortcode [hello] qui ne dira plus que « Hello contenu!« , désormais, avec « contenu » remplacé par le contenu du shortcode. Notre shortcode [monde], lui, affichera simplement le mot « monde » là où il est. Je pense qu’il est inutile de vous montrer comment faire ces choses-là…

Si l’utilisateur écrit « [hello]World[/hello] [monde]« , tout va bien, nous afficherons « Hello World! monde » et c’est tout. C’est con, ça sert à rien, mais on s’en fout. Imaginons plutôt que l’utilisateur choisisse d’écrire « [hello]le [monde][/hello]« . Là, tout va mal.

WordPress ne fait qu’un seul tour pour gérer les shortcodes, et indiquer la chaîne précédente produira donc le résultat « Hello le [monde]! » : le shortcode [monde] n’a tout simplement pas été interprété !

Bien sûr, peut-être ne voudrez-vous pas qu’ils le soient justement. Mais selon les besoins, c’est un peu ennuyeux. Heureusement, WordPress a pensé à tout et nous fournit la fonction qu’il nous faut : do_shortcode().

Cette fonction s’utilise de façon très simple, en indiquant en paramètre la chaîne que WordPress doit traiter, celle où il faut éventuellement aller chercher des shortcodes. Aussi, nous pourrions l’utiliser comme ceci dans notre cas :


function hello($atts, $contenu) {
	return 'Hello ' . do_shortcode($contenu) . '!';
}
?>

Et là, tout va bien : utiliser la chaîne qui posait problème jusque maintenant produira le résultat « Hello le monde!« , exactement comme on le souhaitait.

A-t-on vraiment fait le tour ce coup-ci ?

Pas vraiment. En fait, il reste encore toute une multitude de petits détails que je n’ai pas abordé. Cependant, ce sont vraiment de tout petits détails qui ne nécessitent guère d’explications et je vous laisse donc vous débrouiller seul pour ceux-ci. Bien sûr, n’hésitez pas à laisser un commentaire si jamais vous avez des questions concernant un détail à rajouter, ou si vous avez une idée de comportement qui nécessiterait un tutoriel entier.

Avec tout ce que nous avons vu, vous êtes normalement capable de créer des shortcodes très puissants. Pensez-y un peu, l’espace d’un instant : nous pouvons créer des shortcodes simples, sans aucun paramètre à indiquer, ou nous pouvons gérer des attributs plus complexes, avec du contenu et des attributs, avec ou sans nom.

Notez pour finir que vous pouvez bien sûr mixer les shortcodes avec des boutons, nous avons déjà vu comment insérer du contenu dans les éditeurs de WordPress. D’ailleurs, pour ceux qui se posent la question, c’est exactement ce qui est fait pour WP Photo Sphere : le bouton média « Ajouter un panorama » permet de sélectionner un panorama, inséré sous forme de shortcode lui-même géré par l’API de WordPress. Comme quoi, on peut en faire des choses.

Gravatar de Tasse de Café
Original post of Tasse de Café.Votez pour ce billet sur Planet Libre.

Tuxicoman : Suivre les commentaires d’un article particulier en RSS avec WordPress

lundi 2 juin 2014 à 09:05

Parmi les arguments avancés pour l’utilisation de DisquS figure celle-ci :

Je crois que l’intérêt de Disqus est pour les utilisateurs, qui peuvent suivre facilement les conversations autour des commentaires qu’ils ont laissés. Combien de fois avez-vous laissé un commentaire sur un blog, vérifié une ou deux fois s’il y avait des réponses intéressantes, puis oublié cette page. Avec Disqus, si quelqu’un répond trois mois plus tard, l’utilisateur peut en obtenir une notification et rebondir.

Et bien vous devriez savoir que pour chaque article publié avec WordPress on peut avoir un flux RSS particulier des commentaires. Ex : http://tuxicoman.jesuislibre.net/2014/05/disqus-pourquoi.html/feed

En bonus, pas besoin de laisser son mail pour s’inscrire ni de prier pour que vos démarches de désinscriptions soient bien prises en compte.

J'aime(5)Ferme-la !(1)

Related Posts:

Gravatar de Tuxicoman
Original post of Tuxicoman.Votez pour ce billet sur Planet Libre.

Articles similaires

Planet Libre : Brèves du Planet Libre - lundi 02, juin 2014

lundi 2 juin 2014 à 00:00

Hachette vs Amazon : Filippetti agite le chiffon d'une enquête en Europe - Next INpact

amazon neutralité concurrence


antistress : "En réaction au conflit opposant Hachette et Amazon, Aurélie Flippetti, la ministre de la Culture et de la Communication, « appelle à la vigilance l’Europe sur les tentations d’abus de position dominante d'Amazon ». Une phrase lourde de sens alors que Google est en pleine tourmente depuis plusieurs années en Europe, même si un accord à l'amiable pourrait être trouvé d'ici quelques mois."


Campagne "Adopte le libre" - Logiciels libres & open-source et autour du libre

site annuaire logiciel libre alternative


antistress : Parole à Hervé, de clibre.eu : "Nous avons lancé il y a quelques jours une campagne Ulule ( http://fr.ulule.com/adopte-le-libre/ ) pour notre site web cLibre.eu qui veut faire la promotion du top 50 des logiciels libres servant le plus (80% cas d’utilisation pour 80% des utilisateurs).
Il y a un déjà un mini moteur de recherche pour trouver un logiciel libre à partir d’un logiciel propriétaire, d'un besoin.
Il a maintenant besoin de vous pour se développer et communiquer auprès du grand public et faire ici augmenter l’utilisation des logiciels libres dans le monde francophone.
Nous pensons aussi réaliser d’autres développements pour faciliter l’intégration de la participation de membres aussi bien pour la soumission de logiciels libres que pour le vote, commentaire …"


Chantage : Google, Apple et Amazon, les tontons écrabouilleurs - Le nouvel Observateur

Google Apple Amazon Facebook neutralité concurrence


antistress: "Google qui saigne les labels de musique indé, Amazon qui tente d’enterrer une maison d’édition récalcitrante et Apple qui censure la nudité : les géants du Net n’hésitent pas à jouer la carte du chantage."


Yes, your smartphone camera can be used to spy on you… | Naked Security - Liens en vrac de sebsauvage

pistage smartphone Google Android


antistress : "En théorie, la caméra sur votre téléphone Android ne peut pas vous filmer sans afficher un aperçu de la vidéo. Vous êtes donc censé voir que la caméra est active.
Sauf que ce hacker a réussi à réduire la surface d'aperçu à 1x1 pixel, la rendant presque invisible.
Ah, et ça marche même quand vous appuyez sur le bouton "veille" du téléphone.
Vous pouvez donc être potentiellement espionné n'importe quand."


Vers une mise à l'écart de la NSA lors de la conception des normes de chiffrement - Numerama

pistage chiffrement institution


antistress : "Aux États-Unis, un amendement d'un représentant démocrate a été adopté par la commission en charge des sciences et de la technologie. Celui-ci propose de tenir la NSA à l'écart de la conception des normes cryptographiques conçues par l'institut national des normes et de la technologie (NIST) et qui participent au chiffrement des communications."


Surveillance : la Cnil dénonce l'argument "simpliste" de Valls et Sarkozy - Le Point

pistage institution CNIL


antistress : "Le gendarme de la vie privée sonne la charge contre "l'argument sans cesse ressassé du rien à se reprocher, rien à cacher" invoqué pour surveiller les citoyens." Elle a l'air bien la présidente de la CNIL.


Gravatar de Planet Libre
Original post of Planet Libre.Votez pour ce billet sur Planet Libre.

Goffi : Salut à Toi la planète libre !

dimanche 1 juin 2014 à 23:01

Salut à vous,

comme je viens d'arriver sur planet-libre, je pense qu'il est plus correct de se présenter...

Je suis un des développeurs du projet « Salut à Toi » (SàT), un outil de communication décentralisé. Cet outil permet de faire de nombreuses choses allant du microblogage aux jeux, et fonctionne sous différents environnements (il est multi-interfaces): web, bureau, interface console, ligne de commande, etc.

Mon blog (du moins le flux utilisé pour planet-libre) parlera principalement de ce projet ou de XMPP, le protocole qu'il utilise, mais également de réflexions plus générales: nous développons avec une vision critique des nouveaux médias, et pas seulement en ce qui concerne la vie privée.

Un article publié récemment sur reflets.info présente SàT et son contrat social, et un billet que j'ai écris en 2011 parle de quelques-unes des motivations.

Nous sommes en cours de réflexion pour monter une coopérative (ou autre statut) autogérée pour développer SàT, et essayer d'en vivre en cohérence avec nos idées.

À bientôt, et merci à l'équipe de planet-libre (en particulier antistress et theClimber) pour avoir pris en compte rapidement mes critiques.

Goffi

Gravatar de Goffi
Original post of Goffi.Votez pour ce billet sur Planet Libre.

La vache libre : Concalc – Une calculette dans votre terminal

dimanche 1 juin 2014 à 22:42

concalc

Si nous devions citer 2 logiciels présents par défaut dans (quasiment) tous les OS, les environnements de bureau et les distributions de la planète, nous pourrions dire sans trop nous tromper qu’il y a un terminal et une calculatrice. Après la lecture de ce billet la calculette traditionnelle va vous paraître bien fadasse et vous lui préférerez peut-être Concalc, une application sympa conçue dans le but vous permettre d’effectuer vos opérations mathématiques depuis votre terminal. Il s’agit plus précisément d’une adaptation de l’analyseur d’algorithme d’Extcalc (une calculatrice Qt), empaqueté pour en faire un programme de console simple. À ce titre d’ailleurs, Concalc est capable d’exécuter des scripts en langage C.

Comme vous pouvez le voir sur l’image d’illustration, l’utilisation de Concalc est vraiment un jeu d’enfant. Une fois installé il suffit d’ouvrir votre terminal, d’entrer la commande de base « concalc » suivie de l’opération à effectuer et d’appuyer sur la touche ENTER.

Exemple :

$ concalc 2+2 [Enter]

Qui devrait vous renvoyer la bonne réponse.

$ concalc 2+2 [Enter]
4

Vous pouvez aller plus loin et entrer des opérations nécessitant une syntaxe plus complexe :

Exemple :

$ concalc "2*(3+7/2)" [Enter]
13

Voilà, ce n’est pas plus compliqué que ça. Pour prendre connaissance des autres options utilisez l’argument « -h ».

Bien entendu vous avez Calc qui fait la même chose (certains diront sans doute « en mieux »), mais dans tous les cas ça peut s’avérer pratique et ça fait très geek. Alors pourquoi faire comme tout le monde et utiliser une calculatrice traditionnelle, quand nous avons un terminal et Concalc dans la machine ?!!

Si ça vous tente vous pouvez en savoir plus sur Concalc en visitant le site du projet.

Pour l’installer sur Archlinux, Manjaro et dérivés il suffit de passer par AUR et pour Debian et Ubuntu apt fera l’affaire.

sudo apt-get install concalc

Amusez-vous bien.

source

Gravatar de La vache libre
Original post of La vache libre.Votez pour ce billet sur Planet Libre.

I'm richer than you! infinity loop