Saya sedang men-debug masalah dengan skrip pihak ketiga milik kami yang digunakan pengguna wordpress dengan menyalin / menempelkan cuplikan skrip dan html ke tubuh postingan mereka seperti (contoh dunia non-nyata tentu saja):
<script>
window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } };
window.foobar.hello();
</script>
Saya perhatikan bahwa beberapa instalasi wordpress akan membungkus ini dalam CDATA, beberapa tidak akan (mungkin dengan melakukan semacam pemeriksaan DOCTYPE - meskipun semua tema yang saya uji ini menggunakan doctype HTML5).
Namun, ketika membungkus skrip dalam CDATA, pengguna akan digigit oleh bug berikut: https://core.trac.wordpress.org/ticket/3670 (penutupan >
tidak diganti dengan benar >
) yang menyebabkan browser mengabaikan konten skrip :
<script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); // ]]></script>
Saya tidak memiliki terlalu banyak WP-Fu dan googling hanya membuat saya mengidentifikasi masalah apa adanya, jadi pertanyaan saya adalah: kapan tepatnya WordPress membungkus skrip inline ke dalam bagian CDATA? Dapatkah pengguna entah bagaimana mencegah perilaku ini? Dapatkah pengguna entah bagaimana mengatasi bug di atas tanpa mengubah WP core?