web-dev-qa-db-fra.com

Le code de script dans le widget texte ne s'affiche pas

J'ai un auto-hébergé Wordpress 3.7 et en utilisant le thème Twenty Thirteen. J'ai placé un widget de texte sur la barre latérale et y ai inséré un code simple provenant d'Amazon:

<SCRIPT charset="utf-8" type="text/javascript" src="http://ws-na.Amazon-adsystem.com/widgets/q?ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Fguardiaintern-20%2F8002%2Feb678005-711d-488e-bdc6-f6dd775e0ed8"> </SCRIPT> 
<NOSCRIPT><A HREF="http://ws-na.Amazon-adsystem.com/widgets/q?ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Fguardiaintern-20%2F8002%2Feb678005-711d-488e-bdc6-f6dd775e0ed8&Operation=NoScript">Amazon.com Widgets</A></NOSCRIPT>

Cependant, lorsque vous chargez le site, il ne s'affiche pas. J'avais l'impression que tout texte ou HTML arbitraire inclurait également le code <SCRIPT> et pourtant, il semble que ce ne soit pas le cas. Est-ce que quelqu'un sait ce qui ne va pas ou comment résoudre ce problème?

UPDATE supplémentaire: Il s'avère que le code ci-dessus apparaît dans Firefox et IE avec un léger retard, mais le rendu est correct. Cependant, il ne rendra PAS le rendu du tout sur Chrome, quoi qu’il en soit. Toute idée pourquoi il semble/semble sur la surface au moins être spécifique à votre navigateur? Qu'est-ce qui causerait cette différence de comportement?

RÉSULTATS DE DÉBOGAGE: Il s'avère qu'en réalité ilESTun BUG Wordpress qui provoque la rupture du code. Utilisation de @toscho plugin recommandé Magic Widgets a résolu le problème en rendant le code affiché sans problème. Je serai en contact avec les WP développeurs Ryan et Andrew pour déterminer la cause du problème et résoudre le bogue dans la prochaine version afin d'éviter des problèmes futurs de même nature. .

1
GµårÐïåñ

[SOMMAIRE]

Bien qu'en théorie, l’utilisation du widget texte fourni par le noyau devrait vous permettre de mettre en oeuvre tout code HTML arbitraire, j’ai récemment rencontré le problème ci-dessus, où le code était enveloppé par Wordpress de manière à affecter la capacité de restituer correctement sur Chrome. Le code était toujours correct sur Firefox et Internet Explorer, mais le problème affectait suffisamment Chrome pour qu’il ne s’affiche pas correctement (il afficherait un rendu vierge/sans rendu de sortie).

[SOLUTION]

Après avoir examiné le code principal et évalué le code "final" proposé par Wordpress, je me suis rendu compte que cela avait un rapport avec la manière dont il affectait l'accès du code généré par le code au mécanisme de rendu de Chrome. Suppression de ces wrappings ajoutés qui ont causé le problème du code final a abouti à afficher correctement. Ce processus a ensuite été automatisé et vérifié à plusieurs reprises à l'aide d'un plugin suggéré par @toscho appelé Magic Widgets qui vous fournit un widget de texte non filtré qui traite le code collé dans ceux-ci. sous leur forme pure et sans traitement et emballage réalisés par Wordpress.

[CONCLUSION]

Ma conclusion et ma recommandation à tout le monde est la suivante: jusqu'à ce que je puisse obtenir que les développeurs Wordpress fournissent un meilleur widget texte qui n'interagit pas avec le code de toute façon, vous devez utiliser le plug-in mentionné ci-dessus pour mettre tous les codes bruts, en particulier <SCRIPT> codes ou tout élément qui extrait le code JavaScript du système (comme l'exemple ci-dessus dans ma question) afin d'éviter toute interférence avec la façon dont il est traité et rendu par Wordpress - à moins de modifier les pages manuellement et de placer votre code directement dans les fichiers vous allez afficher.

1
GµårÐïåñ