如何在WP主题的页脚中正确加载/移动jquery?

时间:2013-12-26 17:31:31

标签: javascript php jquery css wordpress

我正在尝试在我的WP主题(WP 3.8)的页脚中加载jquery,但是我尝试的非解决方案对我不起作用。我在网上搜索,但没有找到正确的方法在WP主题的页脚中加载jquery。

这是我的function.php

if (!is_admin())
    add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11);

function my_jquery_enqueue() {

    // Deregister the included library
    wp_deregister_script('jquery');

    // Register the library again from Google's CDN
    wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js", false, '1.10.2', true);
    wp_enqueue_script('jquery');
}

这个JS在我的function.php中使用它正确地加载到页脚中:

/* Integrate preloader script */
wp_register_script('jPreloader', get_stylesheet_directory_uri() . '/js/loader.js', 'jquery', null, true);
wp_enqueue_script('jPreloader');

wp_enqueue_script( 'myscript', get_template_directory_uri() . '/js/scripts.min.js', array( 'jquery' ), '', true );

/*
    * Register and enqueue a script that does not depend on a JavaScript library.
    */

function child_add_scripts() {

    wp_register_script(
        'avia',
        get_stylesheet_directory_uri() . '/js/avia.js',
        array('jquery'),
        '1.1',
        true
        );

    wp_register_script(
        'bottom',
        get_stylesheet_directory_uri() . '/js/bottom.js',
        array('jquery'),
        null,
        true
        );

    wp_enqueue_script('avia');
    wp_enqueue_script('bottom');
}

// Run this function during the wp_enqueue_scripts action
add_action( 'wp_enqueue_scripts', 'child_add_scripts' );

不知道为什么jQuery没有加载到我的WP主题的页脚中,我做错了什么?

2 个答案:

答案 0 :(得分:2)

试试这个:

if (!is_admin())
    add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11);

function my_jquery_enqueue() {

    // Deregister the included library
    wp_deregister_script('jquery');

    // Register the library again from Google's CDN
    $googleScript = 'http'. ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . '://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js';
    wp_register_script('jquery', $googleScript, false, '1.10.2', true);
    wp_enqueue_script('jquery');
}

答案 1 :(得分:2)

我已经使用此函数将jquery移动到页脚:

function custom_clean_head() { 
   remove_action('wp_head', 'wp_print_scripts'); 
   remove_action('wp_head', 'wp_print_head_scripts', 9); 
   remove_action('wp_head', 'wp_enqueue_scripts', 1);

   add_action('wp_footer', 'wp_print_scripts', 5);
   add_action('wp_footer', 'wp_enqueue_scripts', 5);
   add_action('wp_footer', 'wp_print_head_scripts', 5); 
} 

add_action( 'wp_enqueue_scripts', 'custom_clean_head' );

但是,我需要在我的测试网站上为我的预加载器提供解决方案:http://dev.bogosavljev.com/

有人可以看看,告诉我我做错了什么吗?

问题是页面上的内容会显示一秒钟,然后显示我的预加载器(动画字母B),然后显示淡入淡出效果,显示页面。

如何显示第一个预加载器(/js/loader.js),然后是页面? 作为参考,我使用具有相同效果的Adham网站 - http://www.adhamdannaway.com/