我已经创建了一个WordPress主题的孩子,现在我正在尝试通过修改孩子的functions.php将自定义JavaScript插入到主页中。但是,我的脚本没有被加载,我不知道为什么。我已经在PHP代码中插入了'echo'语句,它似乎是
add_action( 'wp_enque_scripts', 'video_bg', 10);
未能致电
video_bg()
这是我孩子的functions.php:
<?php
add_action( 'after_setup_theme', 'post_theme_setup' );
if ( !function_exists( 'post_theme_setup' )):
function post_theme_setup(){
function video_bg() {
wp_enque_script( 'myVideo', get_stylesheet_directory_uri() . '/JS/filmScript.js', array('jquery'), '1.0.0', false );
echo '<script>console.log("Script added?")</script>';
}
add_action( 'wp_enque_scripts', 'video_bg', 10);
echo '<script>console.log("Loop Entered")</script>';
}
endif;
以下是控制台告诉我的内容:
Loop Entered (index):1
JQMIGRATE: Migrate is installed, version 1.4.1 jquery-migrate.min.js?ver=1.4.1&nocache=1:2
有谁能告诉我为什么video_bg()永远不会被调用?或者其他问题是什么?
答案 0 :(得分:1)
如果在添加一些add_action时没有调用该函数,则有两种可能的情况: 1.您输入了错误的操作/过滤器挂钩名称。 2.您加载的页面没有触发该挂钩。
在这种情况下,你做了第一次。没有一个名为:wp_enque_scripts的钩子,没有一个名为wp_enque_scripts的函数。 将它们更改为wp_enqueue_scripts。
add_action( 'wp_enqueue_scripts', 'video_bg', 10);
add_action( 'after_setup_theme', 'post_theme_setup' );
if ( !function_exists( 'post_theme_setup' )):
function post_theme_setup(){
function video_bg() {
wp_enqueue_scripts( 'myVideo', get_stylesheet_directory_uri() . '/JS/filmScript.js', array('jquery'), '1.0.0', false );
echo '<script>console.log("Script added?")</script>';
}
add_action( 'wp_enqueue_scripts', 'video_bg', 10);
echo '<script>console.log("Loop Entered")</script>';
}
endif;
您还可以像这样优化代码:
add_action( 'after_setup_theme', 'post_theme_setup' );
if ( !function_exists( 'post_theme_setup' )):
function post_theme_setup(){
add_action( 'wp_enqueue_scripts', 'video_bg', 10);
echo '<script>console.log("Loop Entered")</script>';
}
endif;
function video_bg() {
wp_enqueue_scripts( 'myVideo', get_stylesheet_directory_uri() . '/JS/filmScript.js', array('jquery'), '1.0.0', false );
echo '<script>console.log("Script added?")</script>';
}