2010-01-07 5 views
2

Existe-t-il un moyen de «bonne pratique de travail» pour modifier le balisage qu'un plugin WordPress produit sans modifier les fichiers principaux du plugin. Le problème que je prévois est que lorsque vous mettez à jour le plugin, le balisage que vous auriez modifié a été écrasé.Modification du balisage du plugin WordPress

Je sais que dans Drupal il y a des remplacements de templates, mais je ne connais pas assez WordPress pour faire une pratique similaire.

Une aide?

Répondre

0

Le plugin lui-même devrait probablement être écrit pour le permettre (mais voir ci-dessous). Il existe plusieurs façons de procéder: Vous pouvez demander au plugin de rechercher les fichiers modèles qu'il extrait d'un emplacement arbitraire (par exemple, "uploads/myplugin"). Vous pouvez éventuellement stocker le code HTML dans la base de données en tant que paramètre. Le plugin peut être écrit avec un hook apply_filter (tout comme WordPress lui-même utilise des hooks) pour permettre des appels externes qui changent de sortie (par exemple à partir d'un plugin séparé ou d'un theme's functions.php). J'ai utilisé toutes ces méthodes.

Si vous parlez de modifier la sortie du plugin de quelqu'un d'autre, vous pouvez leur demander d'implémenter l'un des éléments ci-dessus. Pousser vient à pousser, vous pouvez utiliser JavaScript pour manipuler le DOM.

0

La réponse à votre question est crochets et modèles. Si vous avez de la chance, le plugin utilisera des templates pour sa sortie et vérifiera votre thème pour voir si vous les avez surchargé, ou il peut avoir des hooks de filtre qui vous permettent de modifier sa sortie. Si vous n'êtes pas chanceux, et que vous ne pouvez pas demander aux auteurs de plugins d'en ajouter pour vous, vous devrez être plus créatif.

  • d'ajouter dans les requêtes WordPress que le plugin est et de les modifier pour retourner des résultats différents.
  • accrocher dans la fonction WordPress get_option() pour modifier les paramètres du plugin à la volée.
  • crochet dans le contenu de la page, et d'utiliser preg_replace() pour pirater le code HTML. Hook au début de la génération de la page, appelez ob_start() pour mettre en tampon la sortie de la page, et connectez le wp_footer pour appeler ob_end_clean() et utilisez preg_replace() pour pirater le code HTML.

Juste quelques idées :)

De toute évidence, il est préférable de travailler avec le plugin que contre il. Vous devriez vérifier si votre plugin utilise des templates, et si ce n'est pas le cas, recherchez les appels à apply_filter() et do_action(). Mais parfois, les besoins doivent!

Questions connexes