Php WordPress wp_register_脚本函数未在页脚中加载脚本
我正试图在正文结束前将谷歌上托管的JQuery加载到我博客的页脚中。这是我在functions.php文件中使用的函数Php WordPress wp_register_脚本函数未在页脚中加载脚本,php,jquery,wordpress,footer,Php,Jquery,Wordpress,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/aj
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');
函数你的函数(){
echo'这是在底部插入的;
}
添加_操作(“wp_页脚”、“您的_函数”);
感谢您的帮助。在
wp\u enqueue\u脚本
函数中有一个标志:
wp\u enqueue\u脚本($handle、$src、$deps、$ver、$in\u footer)代码>
如果要在页脚中加载脚本,可以指定此选项。查看文档:我怀疑依赖于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\u register\u script()
的最后一个参数中传递了1
如果您阅读wordpress上的文档,最后一个参数是布尔值,因此您应该传递true
或false
,而不是1或0,首先,您应该使用
add_action('wp_enqueue_scripts', 'add_scripts');
正如一个不为人知的家伙所说
其次,要仅为需要jQuery的页面加载它(在您的情况下为非管理页面),请将wp_enqueue_脚本(“jQuery”)行移动到仅在呈现用户页面时运行的函数
在我们的插件中,我们只在呈现短代码的函数中调用wp_enqueue_script('jquery')。这样,jQuery只在发生短代码呈现时加载,而这正是我们需要它的时候。这将不会加载到管理员页面或未使用快捷码的页面。在wp\u footer()
函数之前可能会触发未定义的函数
就我的情况而言:
我的模板文件中有buddypress函数,但我已停用buddypress插件,因此函数无法工作。为了解决这个问题,我在所有buddypress函数之前添加了if函数
就这样,;之前:
<li class="show_notification_number"><?php
bp_core_get_notifications_for_user();
?></li>
.
.
.
wp_footer();
.
.
.
.
.
.
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();
.
.
.
.
.
.
wp_footer();
.
.
.
我没有为所有未定义(甚至是所有)函数添加函数exists
。我知道这个标志,并将其设置为wp\u register\u script函数调用。我刚刚用wp_enqueue_脚本尝试了相同的选项,但仍然没有按预期工作。谢谢@gcorne。似乎这就是导致JQuery无法加载到页脚的原因。@gcorne与此完全无关。传递true/false而不是1/0不会解决此问题。