Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress wp_register_脚本函数未在页脚中加载脚本_Php_Jquery_Wordpress_Footer - Fatal编程技术网

Php WordPress wp_register_脚本函数未在页脚中加载脚本

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

我正试图在正文结束前将谷歌上托管的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');
函数你的函数(){
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
,而不是10

,首先,您应该使用

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不会解决此问题。