如何在WordPress中添加特定页面的JS脚本?

时间:2021-09-08 作者:Leo Cheng

我是Wordpress的新手,尝试将聊天泡泡JS脚本放入特定页面。虽然我已经找到了一些答案,但仍然不能完全理解它是如何工作的。

当我试图把下面的代码放在主题中时function.php.聊天泡泡根本没有出现。

我想知道代码中有什么错误。

如果有人能帮我,请提前感谢!

这是我的网站https://staymeander.com/en/meander1948-en/

function wpb_hook_javascript_footer() {
    if(is_page( array(\'3854\',\'253\') ) ) {
    ?>
        <script type="text/javascript">
    (function () {
        var options = {
            line: "//lin.ee/gl1UqsC", // Line QR code URL
            call: "+886225588812", // Call phone number
            call_to_action: "Message us", // Call to action
            button_color: "#FF6550", // Color of button
            position: "right", // Position may be \'right\' or \'left\'
            order: "line,call", // Order of buttons
        };
        var proto = document.location.protocol, host = "getbutton.io", url = proto + "//static." + host;
        var s = document.createElement(\'script\'); s.type = \'text/javascript\'; s.async = true; s.src = url + \'/widget-send-button/js/init.js\';
        s.onload = function () { WhWidgetSendButton.init(host, proto, options); };
        var x = document.getElementsByTagName(\'script\')[0]; x.parentNode.insertBefore(s, x);
    }   
})();
</script>
    <?php
    }
}
add_action(\'wp_footer\', \'wpb_hook_javascript_footer\');

1 个回复
SO网友:Jacob Peattie

如果您使用IDis_page() 您应该将它们作为整数传递,而不是字符串。否则,WordPress将查找slug为的页面;3854“;,不是具有该ID的页面。

因此,不是:

if ( is_page( array( \'3854\', \'253\' ) ) ) {}
使用:

if ( is_page( array( 3854, 253 ) ) ) {}

相关推荐

ServerSideRender和Media Object:将图像数据对象传递给php呈现器的属性,即使它未设置

编辑:简单地说,我遇到的问题是,在js端保存为属性的图像数据对象(js中的imgDataObj)正在传递到PHP端,即使我没有在serversiderender组件中传递它,也没有在PHP渲染回调中侦听它。我有一个自定义脚本,可以创建具有自定义大小的图像集。我正试着把它放到一个街区里。ServerSideRender似乎是一条出路。我用它制作了一些块,但从来没有一块有图像。因此,用户可以从媒体库上传/拾取图像,并为每个断点设置自定义大小。块将图像的大小和ID号发送到PHP端。我们不需要整个图像对象。例如,