将脚本入队时转义引号

时间:2017-06-27 作者:WP Help Cat

有一个快速的问题,

下面的代码是一个简单的函数,用于在WordPress中对脚本进行排队,但问题出在JS上,而不是PHP上。在此状态下,会出现错误:

缺少)参数列表后

我认为我的转义引号的方法有问题,因为通过添加页脚手动使用此脚本可以正常工作。

add_action(\'wp_enqueue_scripts\', function () {
    wp_enqueue_style(\'sage/main.css\', asset_path(\'styles/main.css\'), false, null);
    wp_enqueue_script(\'sage/main.js\', asset_path(\'scripts/main.js\'), [\'jquery\'], null, true);
    $inline_js = \'var $zoho=$zoho || {};$zoho.salesiq = $zoho.salesiq || {widgetcode:"a7d50e2c5dd79539b3393dbeaf47ed569e663414dbe68c618856655be9267b02", values:{},ready:function(){}};
var d=document;s=d.createElement("script");s.type="text/javascript";s.id="zsiqscript";s.defer=true;
s.src="https://salesiq.zoho.com/widget";t=d.getElementsByTagName("script")[0];t.parentNode.insertBefore(s,t);d.write("<div id=\\\'zsiqwidget\\\'></div>")\';
    wp_add_inline_script(\'sage/main.js\', $inline_js);
}, 100);
我错过了什么?非常感谢您的帮助!

1 个回复
最合适的回答,由SO网友:Johansson 整理而成

由于您将美元符号与其他一些变量结合使用,因此我假设您试图在内联脚本中获取一个php变量。您将有3个选项。

关闭和打开引号echo 以下方式的变量:

echo \'Hello\' . $world;

使用双引号可以这样编写上述相同的代码:

echo "Hello $world";
注意双引号。

使用曲括号(&A);双引号是最简洁的方法,因为它使阅读代码更加容易:

echo "Hello {$world}";
因此,您的代码可以转换为:

add_action(\'wp_enqueue_scripts\', function () {

    wp_enqueue_style(\'sage/main.css\', asset_path(\'styles/main.css\'), false, null);
    wp_enqueue_script(\'sage/main.js\', asset_path(\'scripts/main.js\'), [\'jquery\'], null, true);

    $inline_js = "
    var {$zoho} = {$zoho} || {};
    {$zoho}.salesiq = {$zoho}.salesiq || {
        widgetcode:\'a7d50e2c5dd79539b3393dbeaf47ed569e663414dbe68c618856655be9267b02\', 
        values:{},
        ready:function(){}
    };
    var d=document;
    s=d.createElement(\'script\');
    s.type=\'text/javascript\';
    s.id=\'zsiqscript\';
    s.defer=true;
    s.src=\'https://salesiq.zoho.com/widget\';
    t=d.getElementsByTagName(\'script\')[0];
    t.parentNode.insertBefore(s,t);
    d.write(\'<div id=\\\'zsiqwidget\\\'></div>\')";

   wp_add_inline_script(\'sage/main.js\', $inline_js);
}, 100);
我还格式化了代码,以便更容易阅读。

结束