wp_enqueue_script正确完成,现在我如何初始化/调用脚本?

时间:2014-08-02 21:01:05

标签: wordpress skrollr

我已将skrollr脚本添加到wordpress站点。我相信它已正确完成并且脚本正确加载/显示在检查器中。这是代码......

function creationsphere_enqueue_scripts() {

    if (!is_admin()){

        wp_enqueue_script( 'skrollr_js', get_stylesheet_directory_uri() . '/js/skrollr.min.js', array(), NULL, true);

    }
}

add_action( 'wp_enqueue_scripts', 'creationsphere_enqueue_scripts');

我使用购买的wordpress主题,所以我想保留自己的脚本和子主题的更改。所以我在“js'子主题中的文件夹,get_stylesheet_directory_uri()指向子主题。

所以这一切都在起作用,但根据我一直关注的帮助,我现在需要调用脚本(初始化它)。代码是......

// Init Skrollr
var s = skrollr.init({
    forceHeight: false
});

问题是它没有解释在哪里放这个,我不知道在哪里?我相信它说要将它添加到另一个.js文件,如main.js,但我想将所有内容保存在子主题目录中。

有人可以帮帮我吗?非常感谢!

1 个答案:

答案 0 :(得分:2)

这里几件事:

  • 首先,始终为您的操作添加优先级。这可以防止您的脚本稍后被其他脚本覆盖。将您的优先级设置得非常低,以便您的脚本最后加载,例如9999

    add_action( 'wp_enqueue_scripts', 'creationsphere_enqueue_scripts', 9999);
    
  • 您无需检查后端或前端。 wp_enqueue_scripts仅适用于前端。后端脚本使用admin_enqueue_scripts挂钩为后端加载脚本和样式

  • 对于小块的js,在你孩子主题的js文件夹中创建一个js文件,并随意调用它。将该代码添加到其中并保存。你现在可以正常排队

完成所有这些后,您的代码应如下所示

function creationsphere_enqueue_scripts() {

        wp_enqueue_script( 'skrollr_js', get_stylesheet_directory_uri() . '/js/skrollr.min.js', array(), NULL, true);
        wp_enqueue_script( 'NAME FOR HANDLE', get_stylesheet_directory_uri() . '/js/NAME OF JS FILE', array(), NULL, true);

}

add_action( 'wp_enqueue_scripts', 'creationsphere_enqueue_scripts', 9999);