如何将外部jQuery/javascript文件与WordPress链接
-
16-10-2019 - |
题
因此,我正在使用Starkers以我的下一个WP主题为基础,并且我遇到了一个小问题,我将自己的Jquery版本包括在 header.php
文件,但是当使用Firebug检查我的网站时,我注意到JQuery正在下载两次,我进行了一些挖掘,并注意到我不仅包括文件,而且还包括文件 wp_head()
功能。
在试图解决该问题时,我注意到标题文件中的评论,其起源于二十个主题:
/* 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文件的任何建议。
谢谢!
解决方案
从您的问题的措辞中,您必须通过写作添加脚本 <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');
看到 法典页面 有关更多信息。
其他提示
我建议看看 使用WordPress使用jQuery的5个提示. 。除其他外,它显示了从Google库中加载jQuery所需的代码:
function my_init() {
if (!is_admin()) {
// comment out the next two lines to load the local copy of jQuery
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2');
wp_enqueue_script('jquery');
}
}
add_action('init', 'my_init');
您也可以查看 使用Google库 插入。
尽管@tnorthcutt是正确的,如果要加载自己的jQuery,应该正确地脱离WP的本机jQuery,但是当您加载其他WP Core的其他jQuery版本时,您一定会遇到问题。核心和插件都依靠它在那里。因此,如果您每次更新WP时都不会使用最新的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');