web-dev-qa-db-fra.com

Wordpress shortcodes & performance

Les codes courts affectent-ils les performances? chaque plugin utilisant cette technique doit analyser le contenu de publication/page à la recherche du shortcode? Si tel est le cas, il serait préférable de limiter autant que possible les plugins basés sur un shortcode?

1
Riccardo

Vous devez examiner la situation de plusieurs points de vue, puis peser les chances les uns par rapport aux autres.

En général, les codes courts seront plus lents ( nous parlons ici en millisecondes ) car ils doivent être analysés et traités par le gestionnaire de codes courts.

USAGE: [my_shortcode] in post editor

Les codes courts sont en général très utiles et l'emportent généralement sur le fait qu'ils ont tendance à être un peu plus lents que le simple codage en dur d'une fonction et son appel dans le modèle souhaité. Les shortcodes sont portables ( c’est pourquoi ilsdoivent êtredans un plugin ), ce qui les rend excellents pour une utilisation entre thèmes. De plus, vous n'avez pas besoin de modifier un modèle pour faire quelque chose de spécial dans un modèle, vous pouvez simplement déposer le shortcode dans la méta-boîte de contenu de l'éditeur de publication et votre travail terminé.

Pour des raisons de commodité et d’utilisation, les codes abrégés sont définitivement la solution, et tous les aspects positifs l'emportent sur la perte en quelques millisecondes à peine du fait de ne pas utiliser une fonction de rappel spaghetti seule.

USAGE: do_shortcode() codé en dur dans un modèle

C’est là que je trace la ligne. Si vous devez appeler un shortcode via do_shortcode(), vous le faites mal. Comme je l'ai dit, les codes courts sont un peu plus lents, il serait donc préférable d'écrire une fonction simple et de la déposer dans un plugin ( recommandé pour la portabilité ) ou functions.php, puis d'appeler la fonction. dans votre modèle.

Dans les deux cas, vous devrez modifier le modèle pour appeler votre code abrégé ou la fonction ou même la classe que vous avez créée. C'est pourquoi, à mon humble avis, vous ne devriez pas utiliser de codes abrégés, mais plutôt une simple fonction ou une classe un peu plus rapide.

CONCLUSION

Devez-vous rester à l’écart ou limiter l’utilisation des codes courts? La réponse est simple, tout dépend de l'utilisation décrite ci-dessus. Juste une note finale, si vous appelez plusieurs codes abrégés dans une page, essayez de les limiter en combinant les fonctionnalités dont vous avez besoin dans un code abrégé solide et astucieux, capable de faire tout ce que vous voulez.

Avant de poser mon stylo, je veux vous laisser avec cela, téléchargez et installez le Query Monitor plugin. Personnellement, j’ai le sentiment que chaque développeur devrait avoir ce plugin installé sur son environnement de test local. Ce plugin vous dira avec excitation combien de requêtes sont faites, le temps nécessaire pour faire ces requêtes, et il vous dira aussi combien de temps il a fallu pour charger une page spécifique.

3
Pieter Goosen

Il y a plusieurs aspects et comme toujours, la performance est une chose à prendre dans son contexte. La réponse de Pieter vous en donne une: "avez-vous même un (meilleur) moyen d'obtenir les fonctionnalités requises". au-delà, il y a des faits qui méritent d'être gardés à l'esprit

  • Le PHPmoderne _ est rapide. Écrire du code inefficace n’est jamais une bonne chose, mais cela ne vaut probablement pas la peine de perdre trop de temps à essayer d’optimiser le fonctionnement interne de PHP (exemple: guillemets simples vs doubles guillemets)
  • L'utilisation des expressions régulières pour détecter et analyser les codes abrégés ne prend pas beaucoup de temps, elle ne consiste pas toujours à analyser le texte lui-même, mais à générer la "machine d'analyse" interne utilisée dans l'analyse du texte. PHP aide ici en mettant en cache les machines.
  • gonfler est gonfler, et gonfler influe généralement sur la performance d'une certaine manière. En général, vous pouvez "désactiver" les codes courts que vous n'utilisez pas et obtenir la "machine d'analyse" appropriée pour qu'elle soit plus petite et donc plus rapide. La chose à laquelle il faut faire attention si vous allez réellement dans cette voie est de vous assurer que le code de suppression de ballonnement ne prend pas plus de temps à exécuter que l'impact de la simple existence de codes courts inutiles.
2
Mark Kaplun

Si vos codes abrégés ne sont pas appelés, cela signifie qu'ils ne s'appellent pas leurs fonctions et, par conséquent, cela n'affectera pas les performances de votre site Web.

Vous pouvez également utiliser des classes et des variables statiques pour réduire la charge de votre site. Chaque shortcode utilisera la fonction une seule fois, indépendamment du nombre de fois que vous l’appelez.

0
Dmitry Ivanov