我正在尝试在正文完成之前在我的博客页脚中加载托管在Google上的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');
感谢帮助。
答案 0 :(得分:5)
我怀疑依赖于jquery的其他脚本之一未设置为在页脚中加载。由于脚本依赖于jquery,因此jquery将被加载到头部。
答案 1 :(得分:3)
这对我有用
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');
答案 2 :(得分:1)
wp_enqueue_script
函数中有标记:
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
如果要在页脚中加载脚本,可以指定。看一下文档:http://codex.wordpress.org/Function_Reference/wp_enqueue_script
答案 3 :(得分:0)
首先,你应该使用
add_action('wp_enqueue_scripts', 'add_scripts');
如Unknown_Guy所述。
其次,只为需要jQuery的页面(在您的情况下为非管理页面)加载它,然后将wp_enqueue_script('jquery')行移动到仅在呈现用户页面时运行的函数。
在我们的插件中,我们只在呈现短代码的函数中调用wp_enqueue_script('jquery')。这样jQuery只在短代码渲染发生时加载,这就是我们需要的时候。这不会加载到我们的短代码未使用的管理页面或页面上。
答案 4 :(得分:0)
可能有一个未定义的函数在wp_footer()
函数之前被触发。
根据我的情况:
我的模板文件中有buddypress功能,但我已停用了buddypress插件,因此功能不起作用。为了解决问题,我在所有的buddressress函数之前添加了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
。
答案 5 :(得分:-1)
你的错误是在wp_register_script()
的最后一个参数中你传递了 1 。
如果您阅读有关wordpress的文档,则最后一个参数是布尔值,因此您应该传递true
或false
而不是 1 或 0 强>