Debuguję problem z naszym skryptem innej firmy, którego używają użytkownicy Wordpress, kopiując / wklejając fragment skryptu i html do treści swoich postów, jak (przykład z nierealnego świata):
<script>
window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } };
window.foobar.hello();
</script>
Zauważyłem, że niektóre instalacje wordpress będą owijać to w CDATA, inne nie (prawdopodobnie wykonując pewnego rodzaju sprawdzenie DOCTYPE - chociaż wszystkie motywy, na których testowałem to używają doctype HTML5).
Jednak podczas owijania skryptu w CDATA użytkownicy zostaną ugryzieni przez następujący błąd: https://core.trac.wordpress.org/ticket/3670 (zamknięcie >
jest niepoprawnie zastąpione przez >
), co powoduje, że przeglądarka ignoruje treść skryptu :
<script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); // ]]></script>
Sam nie posiadam zbyt wiele WP-Fu, a googling doprowadził mnie do zidentyfikowania problemu w obecnej postaci, więc moje pytanie brzmiałoby: kiedy dokładnie WordPress pakuje wbudowane skrypty w sekcje CDATA? Czy użytkownik może jakoś temu zapobiec? Czy użytkownik może w jakiś sposób obejść powyższy błąd bez modyfikowania rdzenia WP?