因此,我使用Starkers作为我下一个WP主题的基础,我遇到了一个小问题,我在header.php
但是当我使用Firebug检查我的网站时,我注意到jquery被下载了两次,我做了一些挖掘,并注意到我不仅包括了文件,还包括了wp_head()
作用
在尝试修复该问题时,我注意到头文件中有一条注释,该注释源于“210”主题:
/* Always have wp_head() just before the closing </head>
* tag of your theme, or you will break many plugins, which
* generally use this hook to add elements to <head>, such
* as styles, scripts, and meta tags
*/
所以这是我的问题,我的印象是jQuery文件必须设置在任何其他想要使用它的文件之前
wp_head()
应该是最后一件事了
<head>
元素,我现在有点困惑,因为我想知道我应该把
wp_head()
因此包含WP的jQuery文件将用于我的所有插件,尽管它说不这样做。
我在wp_head()
功能,但它是管理页面所必需的,所以我不得不将其放回。
我还想使用(至少是实验)Google CDN版本的jQuery,但不想包含两次!
我希望你能理解我想解释的内容,任何关于我如何解决这个问题的建议都将不胜感激。如果您能就如何使用头文件处理JavaScript文件提供任何建议,我将不胜感激。
谢谢
最合适的回答,由SO网友:Annika Backstrom 整理而成
从你问题的措辞来看,你必须通过写作来添加脚本<script>
模板中的标签。通过添加您自己的脚本wp_enqueue_script()
在模板的functions.php
, 在jQuery上适当设置依赖项,以及wp_head()
将为您添加脚本。
function my_scripts() {
wp_enqueue_script( \'my-sweet-script\', get_bloginfo(\'template_directory\') . \'/script.js\', array(\'jquery\') );
}
add_action(\'template_redirect\', \'my_scripts\');
请参见
codex page 了解更多信息。
SO网友:cjbj
虽然@tnorthcutt正确地指出,如果您想加载自己的jquery,应该正确地将WP的本地jquery出列,但当您加载WP核心的不同jquery版本时,肯定会遇到问题。核心和插件都依赖于它的存在。因此,如果您不在每次更新WP时使用最新的jquery更新主题,您的站点可能会崩溃。
以下代码将确保您的主题始终加载jquery的正确版本,方法是首先查找WP使用的版本,然后从Google加载该版本:
$wp_jquery_version = $GLOBALS[\'wp_scripts\']->registered[\'jquery-core\']->ver;
$jquery_version = ( $wp_jquery_version == \'\' ) ? \'1.8.3\' : $wp_jquery_version; // fallback, just in case
wp_deregister_script(\'jquery\');
wp_register_script(\'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/\'. $jquery_version .\'/jquery.min.js\', $jquery_version, false );
wp_enqueue_script(\'jquery\');