Я отлаживаю проблему с нашим сторонним скриптом, который используют пользователи WordPress, скопировав / вставив фрагмент скрипта и html в тела своего поста, например (пример не из реального мира):
<script>
window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } };
window.foobar.hello();
</script>
Я заметил, что некоторые установки WordPress обернут это в CDATA, а некоторые - нет (возможно, с помощью какой-то проверки DOCTYPE - хотя все темы, на которых я проверял это, использовали тип документа HTML5).
Тем не менее, при переносе скрипта в CDATA пользователи будут укушены следующей ошибкой: https://core.trac.wordpress.org/ticket/3670 (закрытие >
неправильно заменено на >
), которая приводит к тому, что браузер игнорирует содержимое скрипта. :
<script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); // ]]></script>
Я сам не слишком много владею WP-Fu, и поиск в Google привел меня к выявлению проблемы как есть, поэтому мой вопрос был бы таков: когда именно WordPress переносит встроенные скрипты в разделы CDATA? Может ли пользователь как-то предотвратить это поведение? Может ли пользователь как-то обойти вышеуказанную ошибку, не модифицируя ядро WP?