Visual composer

Le web avance et cet article date de janvier 2017, son contenu peut ne plus être pertinent ou d'actualité.

Best Practices : développement de modules Visual Composer & the_content WordPress

Le but de cet article n’est pas d’expliquer comment créer un composant pour Visual Composer, de nombreux articles sont déjà disponibles et bien expliqués à ce propos et WP bakery, éditeur de Visual Composer propose également un exemple d’intégration.

Ici le but de l’article est de donner quelques indications sur le développement de plugins ajoutant des composants à Visual Composer, notamment lors de l’utilisation de “the_post()” dans ces composants.

Identifier le soucis potentiel

Lorsqu’on ajoute un composant, il faut garder à l’esprit que Visual Composer est un plugin générant des shortcodes dans le champ “content” de WordPress et les transformant en html au travers du filtre the_content().

C’est pourquoi si on développe un composant utilisant par exemple une WP_Query et affichant le résultat dans un template via les fonctions “the_post()”, “the_title()”, etc.  Il ne faut surtout pas utiliser la fonction “the_content()”. En effet, comme l’indique la documentation WordPress c’est à l’appel de cette fonction qu’est appliqué le filtre “the_content”.
Avoir une exécution du filtre sur une ou des portions partielles d’un contenu sur lequel le filtre est ensuite appliqué dans sa globalité, est l’assurance de ne pas optimiser son code et de risquer bugs et dysfonctionnements, d’autant plus si d’autres plugins tiers s’appliquent eux-aussi sur ce filtre.

Documentation de la fonction the_content de wordpress

Le filtre est appliqué après l’appel à la fonction “get_the_content()” et avant l’echo du contenu.

Que faire pour optimiser ?

Afin d’éviter cela il est préférable dans un composant d’utiliser à la place de “the_content()” :

echo get_the_content()

Ainsi le filtre “the_content” n’est appliqué qu’une seule et unique fois sur le texte.

La question peut également se poser pour l’élément “the_title()” et il est plus difficile d’y répondre :

  • est-ce que des plugins font les mêmes traitements sur le filtre “the_title” que sur “the_content” ?
  • est-ce que des fonctions requises sont appliquées sur le filtre “the_title” ?

Une réponse au cas par cas me semble plus justifiée.

Publié le par Edouard dans Développement , PHP , Visual Composer , Wordpress