使用wp_enqueue加载脚本

时间:2014-02-16 09:19:37

标签: javascript wordpress loading

<?php

//Load Javascript


function my_scripts() {
    wp_register_script('fancyfields', get_template_directory_uri() . '/js/fancyfields-1.2.min.js', array('jquery'), null, true);
    wp_register_script('headmap', get_template_directory_uri() . '/js/headmap.js', array('markerclusterer'), null, true);
    wp_register_script('infobox', get_template_directory_uri() . '/js/infobox.js', array('markerclusterer'), null, true);
    wp_register_script('gmaps_google', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://maps.google.com/maps/api/js?sensor=false", false, null, true);
    wp_register_script('markerclusterer', get_template_directory_uri() . '/js/markclusterer.js', array('gmaps_google'), null, true);

    wp_enqueue_script('fancyfields');
    wp_enqueue_script('headmap');
    wp_enqueue_script('infobox');
    wp_enqueue_script('gmaps_google');
    wp_enqueue_script('markerclusterer');

}
add_action('wp_enqueue_scripts', 'my_scripts');
?>
我在这里错过了一些东西吗?

为什么这不起作用。我已将上述代码放入childs function.php文件中,但是他们的脚本没有加载到我需要的页面上。

有人可以在这看到一个严重的缺陷吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

你说这是一个儿童主题,所以我假设这也是文件所在的位置。

get_template_directory_uri()将返回父主题。无法在那里找到这些文件,因此无法加载它们。

改为使用get_stylesheet_directory_uri()

E.g。

wp_register_script('fancyfields', get_stylesheet_directory_uri() . '/js/fancyfields-1.2.min.js', array('jquery'), null, true);