首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注册位于子主题中的脚本?

注册位于子主题中的脚本?
EN

WordPress Development用户
提问于 2014-05-15 13:24:32
回答 2查看 1.4K关注 0票数 0

我在注册位于子主题文件夹中的脚本时遇到了很多困难:

这样做很好:

代码语言:javascript
复制
function register_scripts() {
    wp_register_script( 'newsletter', get_template_directory_uri() . '/scripts/scripts.js', array( 'jquery-migrate' ), null );
}
add_action( 'init', 'register_scripts' );

但是,它指向父主题文件夹而不是子主题文件夹,当我试图指向子主题文件夹时,什么都不会发生:

代码语言:javascript
复制
function register_scripts() {
    wp_register_script( 'newsletter', get_stylesheet_directory_uri() . '/scripts/scripts.js', array( 'jquery-migrate' ), null );
}
add_action( 'init', 'register_scripts' );

我做错了什么?

EN

回答 2

WordPress Development用户

回答已采纳

发布于 2014-05-15 14:05:37

我认为你发布的选项实际上都没有效果。您只是在注册脚本,您需要对它们进行初始化。另外,您应该使用wp_enqueue_scripts()动作钩子而不是init()

代码语言:javascript
复制
    function register_scripts() {
        wp_register_script( 'newsletter', get_stylesheet_directory_uri() . '/scripts/scripts.js', array( 'jquery-migrate' ), null );
        wp_enqeue('newsletter');
    }
   add_action( 'wp_enqueue_scripts', 'register_scripts' );
票数 4
EN

WordPress Development用户

发布于 2014-05-15 14:05:27

我不明白第一个代码块是如何工作的,而不是第二个代码块,因为在这两种情况下,您所做的都是注册脚本,而不是排队。如果你不排队,任何东西都不会出现在前端。

代码语言:javascript
复制
function register_scripts() {
  wp_register_script( 'newsletter', get_stylesheet_directory_uri() . '/scripts/scripts.js', array( 'jquery-migrate' ), null );
  wp_enqueue_script('newsletter'); // you need this
}
add_action( 'wp_enqueue_scripts', 'register_scripts' );

另一种可能是,您的排队代码在其他地方,并且在脚本注册之前正在运行。

还要注意的是,加入队列脚本的正确钩子是wp_enqueue_scripts,而不是init

wp_enqueue_scripts是在要在前端显示的项进行排队时使用的适当钩子。尽管名称如此,它还是用于对脚本和样式进行排队。http://codex.wordpress.org/Plugin_API/行动_参考/wp_排队_脚本

这应该是其他代码所假设的,因此您可能会因此而在计时方面遇到困难。

票数 3
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/144498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档