Estoy depurando un problema con una secuencia de comandos de terceros que los usuarios de WordPress usan copiando / pegando un fragmento de secuencia de comandos y html en los cuerpos de sus publicaciones como (por ejemplo, un mundo no real):
<script>
window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } };
window.foobar.hello();
</script>
Noté que algunas instalaciones de wordpress lo envolverán en CDATA, otras no (probablemente haciendo algún tipo de verificación DOCTYPE, aunque todos los temas en los que probé esto usaban un doctype HTML5).
Sin embargo, al envolver el script en CDATA, los usuarios serán mordidos por el siguiente error: https://core.trac.wordpress.org/ticket/3670 (el cierre >
se reemplaza incorrectamente por >
) que lleva al navegador a ignorar el contenido del script :
<script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); // ]]></script>
Yo mismo no poseo demasiado WP-Fu y buscar en Google solo me llevó a identificar el problema tal como está, así que mi pregunta sería: ¿cuándo exactamente WordPress ajusta los scripts en línea en las secciones CDATA? ¿Puede el usuario de alguna manera prevenir este comportamiento? ¿Puede el usuario solucionar el error anterior sin modificar el núcleo de WP?