“不在管理区域取消注册jQuery脚本”是什么意思?

时间:2015-11-02 作者:stlawrance

我们都知道使用cdn缓存等的优势。。为此,我取消了脚本注册,并向cdn链接注册了jquery。但问题是它显示出这样的错误

是wordpress中的调试已打开。

它显示了这样的错误。

注意:wp\\U deregister\\u脚本调用不正确。不要在管理区域中注销jquery脚本。要针对前端主题,请使用wp\\u enqueue\\u scripts挂钩。有关详细信息,请参阅WordPress中的调试。(此消息是在版本3.6中添加的。)在D:\\learnnepal\\wp中包含\\个函数。php在线3622

但我认为代码很好。

当我删除通知中没有显示的以下代码行时?

add_action( \'wp_enqueue_scripts\', function(){
    wp_deregister_script( \'jquery\' );
    wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js\', array(), null, false );
    wp_enqueue_script( \'jquery\');
});
代码有问题吗?

很明显,关闭调试是一种解决方法,但这种做法很糟糕,不是吗?

3 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

根据错误。。。

add_action( \'wp_enqueue_scripts\', function(){
    if (is_admin()) return; // don\'t dequeue on the backend
    wp_deregister_script( \'jquery\' );
    wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js\', array(), null, false );
    wp_enqueue_script( \'jquery\');
});
老实说,除非你在一个广阔的地理区域拥有巨大的流量,否则我会说CDN的评级过高。我看过我管理的网站上的挂断,通常瓶颈是CDN——我在谷歌上看你。因此,这可能不是一个值得实施的解决方案。

其次,核心脚本的出列是一个危险的游戏。插件和主题依赖于这些脚本。如果加载的版本与预期版本不同,脚本可能会失败。

很明显,关闭调试是一种解决方法,但这种做法很糟糕,不是吗?

生产还是开发?调试应在生产服务器上关闭,并仅在调试时打开。

SO网友:phatskat

正如错误所指出的,您确实不想deregister the jquery script in the administration area. 您可以采取哪些措施避免通知:

if ( ! is_admin() ) {
    add_action( \'wp_enqueue_scripts\', function(){
        wp_deregister_script( \'jquery\' );
        wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js\', array(), null, false );
        wp_enqueue_script( \'jquery\');
    });
}
您不应该在管理区域取消注册的原因是,管理部分的许多WP核心功能都依赖于JavaScript,而WP团队已经将该功能编码为专门用于WordPress附带的jQuery版本。虽然功能上应该没有任何区别,但如果在不同的jQuery版本中缺少或损坏了某些内容,则可能会导致您的管理区域无法使用。

SO网友:bonger

如果你用的是正确的钩子,那么它不应该抱怨:

if ( is_admin() ) {
    $hook = \'admin_enqueue_scripts\';
} elseif ( \'wp-login.php\' === $GLOBALS[\'pagenow\'] ) {
    $hook = \'login_enqueue_scripts\';
} else {
    $hook = \'wp_enqueue_scripts\';
}
add_action( $hook, function() {
    wp_deregister_script( \'jquery\' );
    wp_register_script( \'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js\', array(), null, false );
    wp_enqueue_script( \'jquery\');
} );

相关推荐

Wp-Content/Themes文件夹在哪里?

我想为我的wordpress站点创建一个子主题(仅供参考),这样我的更改就不会被每次更新所覆盖。显然,我需要在wp-content/themes文件夹中为子主题创建一个子文件夹。问题是,我找不到它。我曾尝试将wp内容和wp内容/主题添加到域中-它生成了一个空白的白色页面。我试着在spotlight文件搜索(是的,我有一台mac电脑)中搜索它(只是“wordpress”),它只找到了一些我在2010年安装的wordpress文件夹,我甚至都不记得做过这些。由于我最近在过去两周(2014年5月)建立了这个网站