我在注册位于子主题文件夹中的脚本时遇到了很多困难:
这样做很好:
function register_scripts() {
wp_register_script( 'newsletter', get_template_directory_uri() . '/scripts/scripts.js', array( 'jquery-migrate' ), null );
}
add_action( 'init', 'register_scripts' );但是,它指向父主题文件夹而不是子主题文件夹,当我试图指向子主题文件夹时,什么都不会发生:
function register_scripts() {
wp_register_script( 'newsletter', get_stylesheet_directory_uri() . '/scripts/scripts.js', array( 'jquery-migrate' ), null );
}
add_action( 'init', 'register_scripts' );我做错了什么?
发布于 2014-05-15 14:05:37
我认为你发布的选项实际上都没有效果。您只是在注册脚本,您需要对它们进行初始化。另外,您应该使用wp_enqueue_scripts()动作钩子而不是init()。
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' );发布于 2014-05-15 14:05:27
我不明白第一个代码块是如何工作的,而不是第二个代码块,因为在这两种情况下,您所做的都是注册脚本,而不是排队。如果你不排队,任何东西都不会出现在前端。
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_排队_脚本
这应该是其他代码所假设的,因此您可能会因此而在计时方面遇到困难。
https://wordpress.stackexchange.com/questions/144498
复制相似问题