Estou depurando um problema com um script de terceiros que os usuários do wordpress usam copiando / colando um trecho de script e html nos corpos de seus posts, como (exemplo do mundo não real, é claro):
<script>
window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } };
window.foobar.hello();
</script>
Notei que algumas instalações do wordpress envolvem isso no CDATA, outras não (provavelmente fazendo algum tipo de verificação DOCTYPE - embora todos os temas em que eu testei isso usassem um doctype HTML5).
No entanto, ao agrupar o script no CDATA, os usuários serão mordidos pelo seguinte bug: https://core.trac.wordpress.org/ticket/3670 (o fechamento >
é substituído incorretamente por >
), o que leva o navegador a ignorar o conteúdo do script :
<script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); // ]]></script>
Eu não possuo muito WP-Fu e o Google só me levou a identificar o problema como está, então minha pergunta seria: quando exatamente o WordPress agrupa scripts embutidos em seções CDATA? O usuário pode de alguma forma impedir esse comportamento? O usuário pode, de alguma forma, solucionar o bug acima sem modificar o núcleo do WP?