WordPress wp_register_script函数没有在页脚加载脚本


WordPress wp_register_script function not loading script in footer

我试图加载JQuery托管在我的博客的页脚就在主体完成之前。这是我在functions.php文件中使用的函数。

function load_jquery() {
if (!is_admin()) {
    wp_deregister_script('jquery');
    // load the Google API copy in the footer
    wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js', array(), '1.5.1', 1);
    wp_enqueue_script('jquery');
}
}
add_action('init', 'load_jquery');

但是它一直在头文件中加载。我不明白为什么。

我还在functions.php文件中添加了以下函数,它工作得很好;

function your_function() {
    echo '<p>This is inserted at the bottom</p>';
}
add_action('wp_footer', 'your_function');

感谢您的帮助

我怀疑依赖于jquery的其他脚本之一没有设置为在页脚加载。由于脚本依赖于jquery, jquery将被加载到头部。

这对我有用

function add_scripts() {
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js', false, '1.4.2', true);
        wp_enqueue_script( 'jquery' );
}
add_action('wp_enqueue_scripts', 'add_scripts');

wp_enqueue_script函数中有标志:

wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );

如果你想在页脚加载脚本,你可以指定。查看文档:http://codex.wordpress.org/Function_Reference/wp_enqueue_script

首先,您应该使用

add_action('wp_enqueue_scripts', 'add_scripts');

正如Unknown_Guy所指出的。

其次,只加载需要jQuery的页面(在你的情况下非管理页面),然后移动wp_enqueue_script(' jQuery ')行到一个只在渲染用户页面时运行的函数。

在我们的插件中,我们只在渲染短代码的函数中调用wp_enqueue_script('jquery')。这样,jQuery只在短代码呈现发生时才会加载,这正是我们需要它的时候。这将不会加载在管理页面或页面,我们的短代码不使用

可能存在先于wp_footer()函数触发的未定义函数

对于我的情况:

我有buddypress功能在我的模板文件,但我已经停用buddypress插件,所以功能不工作。为了解决这个问题,我在所有buddypress函数之前添加了if function exists

一样;:

<li class="show_notification_number"><?php
               bp_core_get_notifications_for_user();
                ?></li>
.
.
.
wp_footer();
.
.
.
:后

<li class="show_notification_number"><?php 
               if( function_exists( 'bp_core_get_notifications_for_user' ) ) {
                  bp_core_get_notifications_for_user();
                  } ?>
</li>
.
.
.
wp_footer();
.
.
.

我为所有未定义(甚至所有)函数添加了function exists

你的错误是在wp_register_script()的最后一个参数中你传递了1

如果你在wordpress上阅读文档,最后一个参数是一个布尔值,所以你应该传递truefalse,而不是10