我真的希望这不是一个重复的问题。我开始进入Wordpress主题开发之旅。我一直在使用Codex作为文档来编写我创建的每个组件。但是,我遇到了一个片段,由于某些原因我无法理解它。
if ( !is_admin() ) {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', ( 'ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js' ), false, null, true );
wp_enqueue_script( 'jquery' );
}
用纯英文阅读片段,如果用户不是管理员,请取消注册jQuery,再次注册,并在适当的时间发送页面时将其排队输出。当我可以简单地将jQuery添加到一组'< script>< / script>'时,我为什么要这样做?标签并完成它?
修改
应该提一下我发现这个片段的位置。我在http://digwp.com/2010/02/blank-wordpress-theme/
的空白主题的functions.php文件中找到了它答案 0 :(得分:2)
is_admin()检查当前显示的页面是否为管理员仪表板页面。要检查用户是否为管理员,您可以使用current_user_can('administrator') - 或者更好的是检查特定功能。
此代码的目的是为管理页面(使用大量jQuery和AJAX)保留WordPress附带的jQuery版本,但在主题页面上加载不同的版本。他们可能一直在尝试加载比当时WordPress附带的版本更新的版本,或者他们可能只是试图将其从Google的CDN加载。
答案 1 :(得分:1)
此脚本加载特定版本的jquery,实际上是一个非常古老的版本,因为版本1.10.2是当前的最新版本。
可能它用在一个插件中,其中一些javascript函数在更新版本的jquery中被破坏。
如果可能,尽量避免使用脚本标记直接在头部设置脚本。 通过这种方式,可以动态加载/卸载脚本(如您所示)。
答案 2 :(得分:0)
逻辑可能是:
register_unminified_jquery();
if(!admin) {
unregister();
register_minified_jquery();
}