Sto eseguendo il debug di un problema con uno dei nostri script di terze parti che gli utenti di wordpress usano copiando / incollando uno snippet di script e html nei corpi dei loro post come (esempio del mondo non reale ovviamente):
<script>
window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } };
window.foobar.hello();
</script>
Ho notato che alcune installazioni di wordpress lo avvolgeranno in CDATA, altre no (probabilmente facendo una sorta di controllo DOCTYPE - sebbene tutti i temi su cui ho testato usassero un doctype HTML5).
Tuttavia, quando si avvolge lo script in CDATA, gli utenti verranno morsi dal seguente bug: https://core.trac.wordpress.org/ticket/3670 (la chiusura >
viene erroneamente sostituita da >
) che porta al browser ignorando il contenuto dello script :
<script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); // ]]></script>
Non possiedo troppo WP-Fu da solo e googling mi ha portato a identificare il problema così com'è, quindi la mia domanda sarebbe: quando WordPress avvolge esattamente gli script incorporati nelle sezioni CDATA? L'utente può in qualche modo prevenire questo comportamento? L'utente può in qualche modo aggirare il bug sopra senza modificare il core WP?