ฉันกำลังดีบักปัญหากับสคริปต์บุคคลที่สามของเราที่ผู้ใช้ wordpress ใช้โดยการคัดลอก / วางส่วนของสคริปต์และ html ลงในเนื้อหาของโพสต์เช่น (ไม่ใช่ตัวอย่างของโลกที่แท้จริง):
<script>
window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } };
window.foobar.hello();
</script>
ฉันสังเกตเห็นว่าการติดตั้ง wordpress บางส่วนจะห่อสิ่งนี้ใน CDATA บางอันจะไม่ (อาจเป็นการตรวจสอบ DOCTYPE บางประเภท - แม้ว่าชุดรูปแบบทั้งหมดที่ฉันทดสอบนี้ใช้ HTML5 doctype)
แต่เมื่อตัดสคริปต์ใน 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 มากเกินไปและ googling ทำให้ฉันระบุปัญหาได้เท่านั้นดังนั้นคำถามของฉันคือเมื่อใดที่ WordPress รวมสคริปต์อินไลน์ลงในส่วนของ CDATA ผู้ใช้สามารถป้องกันพฤติกรรมนี้ได้หรือไม่? ผู้ใช้สามารถแก้ไขข้อผิดพลาดข้างต้นได้โดยไม่ต้องแก้ไข WP core หรือไม่?