Wordpress class.wp-scripts.php注释掉CDATA而不是仅删除它们

时间:2013-03-17 12:48:04

标签: ajax wordpress cdata

我正在使用wp_localize_script将一些变量从PHP传递到客户端javascript。此函数最终调用另一个执行此操作的函数:

function print_extra_script( $handle, $echo = true ) {
    if ( !$output = $this->get_data( $handle, 'data' ) )
        return;

    if ( !$echo )
        return $output;

    echo "<script type='text/javascript'>\n"; // CDATA and type='text/javascript' is not needed for HTML 5
    echo "/* <![CDATA[ */\n";
    echo "$output\n";
    echo "/* ]]> */\n";
    echo "</script>\n";

    return true;
}

现在评论那些CDATA标签有什么意义,为什么不删除它们呢? 这打破了inspectlet,因为围绕CDATA标签的那些额外评论搞砸了。

2 个答案:

答案 0 :(得分:1)

据我猜,因为尽管HTML5中不需要CDATA,但WordPress开发人员仍然将其包含在使用HTML4或XHTML的博客和网站中,因为几乎在每种情况下它都不会危害。
我正在寻找一个解决方案,因为我想摆脱--in HTML5--不必要的type="text/javascript"属性。

到目前为止,我最好的猜测是从class WP_Scripts扩展wp-includes/class.wp-scripts.php 但我仍在研究如何最好地实现这一目标。

答案 1 :(得分:0)

这里有WordPress的官方Inspectlet插件顺便说一下:https://wordpress.org/plugins/inspectlet-heatmaps-and-user-session-recording/