WordPress wp_enque_scripts似乎不起作用

时间:2017-11-25 06:22:41

标签: javascript php wordpress

我已经创建了一个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()永远不会被调用?或者其他问题是什么?

1 个答案:

答案 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>';
    }