您的自定义 jQuery 代码没有与 WordPress 包含的现有 jQuery 一起运行的原因可能是因为 WordPress 的 jQuery 设置为noconflict。noconflict 方法放弃了 jQuery 中使用的“$”快捷方式。这意味着依赖它的代码,例如
$("p").hide();
...不会工作,因为 $ 不会代表 jQuery 对象。尝试像这样包装您的自定义代码,这是获取 $ 对象的标准方法(示例取自此页面):
jQuery(function ($) {
/* You can safely use $ in this code block to reference jQuery */
$("p").hide();
});
这样做是因为几个不同的 JavaScript 库$
用作“快捷方式”变量(例如MooTools),并且第三方 WordPress 插件和主题通常包含其他 JavaScript 库。$
当 WordPress 将多个库加载到单个页面中时,放弃并让您准确指定您真正要使用的对象是一种确保冲突最少的方法。
所以,我想说确保 WordPress 的标准版本的 jQuery 可用于您的主题(可能wp_enqueue_script
在您的 functions.php 中使用),如此处的提示一所示:
function my_init() {
if (!is_admin()) {
wp_enqueue_script('jquery');
}
}
add_action('init', 'my_init');
...然后通过添加上面的“map-jQuery-back-to-$”包装方法在您自己的函数中使用它对于全面兼容是最好的。大多数当前需要 jQuery 的 WordPress 主题和插件都将被编写为将 jQuery 的发布版本与 WordPress 一起使用,您可能也应该这样做。