已成功注册JavaScript文件,但无法正确呈现

时间:2017-09-30 作者:nopenopenope

我有一个页面,它使用colorbox在单击照片时弹出有关工作人员的信息。我的页面是West的子主题,我在函数中插入了以下代码。php

//register colorbox
    wp_register_script(\'colorbox-js\', 
     \'/wp-includes/js/jquery/jquery-3.2.1.min.js\' , 
     array(\'jquery\')
    ); // when echoed, it returns true 

//for using the js files needed for meet-the-team page
    add_action(\'wp_enqueue_script\', \'colorboxJS\');
    function colorboxJS() {
        wp_enqueue_script(
            \'colorbox\', 
            \'wp-content/themes/bbrebuild/colorboxJSfile.js\', 
             array(\'jquery\', \'colorbox-js\')
        );
    }
下面是colorboxJSfile。js看起来像:

//alerts just to see if the file got loaded correctly
jQuery(document).ready(function(){
    alert("helloooooo");
});
我相信我编写的函数有问题,我对PHP是新手,但我使用了WordPress docsthis video 主要是写它,我不知道代码出了什么问题。

我在控制台中也可以看到:

导航到http://localhost:8080/wordpress/about/meet-the-team/admins/ jquery迁移。min.js?版本=1.4.1:2 JQMIGRATE:已安装迁移,版本1.4.1

jquery。js?ver=1.12.4:3[违规]将非被动事件侦听器添加到滚动阻止“touchstart”事件。考虑将事件处理程序标记为“被动”,以使页面更具响应性。看见https://www.chromestatus.com/feature/5745543795965952

我也尝试过使用get\\u stylesheet\\u directory\\u uri(),但在这样使用时没有什么区别:get_stylesheet_directory_uri() . \'colorboxJSfile.js\',但是wp文档说它接受相对于wordpress根目录的绝对路径,所以我就这样保留了它。我的自定义JS文件位于此处:wamp64 > wwww > wordpress > wp-content > themes > rebuild > colorboxJSfile.js它位于索引的同一目录中。php,函数。php和标题。php和页脚。php文件。

我一整天都在解决这个问题,如果能得到一些帮助,我将不胜感激。如果我遗漏了什么,请告诉我。

编辑:奇怪的部分是当colorbox文件及其依赖项在标题中链接时。php文件,它工作了,但不完全。i、 e.当我点击照片时,它会像预期的那样显示iFrame的弹出窗口,但最大宽度(我用来使其响应)不起作用,因此我查看了它,并咨询了我工作场所的另一位开发人员,他说应该使用wp\\U enque\\U脚本将其包括在内。

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

您正在使用操作将脚本排队,而需要使用过滤器挂钩。此时,您正在向脚本调用添加一个新脚本。

但是,如果您将动作挂钩用于wp_head 叫它在那里工作。

<?php
    add_filter(\'wp_enqueue_scripts\', \'colorboxJS\');
    function colorboxJS() {
        wp_enqueue_script(
            \'colorbox\', 
            get_stylesheet_directory_uri() . \'/colorboxJSfile.js\', 
            array(\'jquery\')
        );
    }
?>

结束