我的 Wordpress 页面加载(使用 jQuery load()
)另一个页面,我希望主页已经包含所有需要的 .js 文件,其中一些是手工制作的。
当我尝试正常添加它们时:
<script src="http://10.0.0.158:8082/js/myScript.js"></script>
有时有效,有时无效。70%的时间不起作用,我只需要几个F5来临时使它起作用。
我的页面在其中加载了很多其他页面(总是使用 jQuery 的load()
),但如果在普通的 php 页面中导入,它可以正常工作。
Wordpress 只是把它搞砸了。
所以我google了很多,似乎我不能只通过html标签导入脚本,我需要使用wordpress的php函数wp_enqueue_script
,文档在这里:http ://codex.wordpress.org/Function_Reference/wp_enqueue_script
使用该文档和本指南中的信息: http ://www.ericmmartin.com/5-tips-for-using-jquery-with-wordpress/
我做了这个功能:
<?php
function customScriptInit() {
if (!is_admin()) {
echo"look! i'm working!";
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://10.0.0.158:8082/js/JQuery.min.js', false, '1.8.3', true);
wp_enqueue_script('jquery');
wp_enqueue_script('jqueryUi', 'http://10.0.0.158:8082/js/jquery-ui-1.9.2.min.js', array('jquery'), '1.0', true);
wp_enqueue_script('cookie', 'http://10.0.0.158:8082/js/cookie.js', array('jquery'), '1.0', true);
wp_enqueue_script('json2', 'http://10.0.0.158:8082/js/json2.js', array('jquery'), '1.0', true);
wp_enqueue_script('easing', 'http://10.0.0.158:8082/js/easing.min.js', array('jquery'), '1.0', true);
}
}
add_action('wp_enqueue_scripts', 'customScriptInit');
?>
我放置了一个 echo 命令以确保它运行良好(是的,我现在可以在我的页面中看到该消息)。
但是现在..看起来根本没有加载 js,我从 javascript 控制台收到了这个错误:
Uncaught ReferenceError: jQuery is not defined
如果我删除关于 jQuery 注销并再次注册的 3 行,我得到了 jQuery 工作,但不是我导入的脚本,通常带有 cookie 的 js 错误:
Can't read cookie: TypeError: Object function (e,t){return new v.fn.init(e,t,n)} has no method 'cookie'
我怎样才能正确地将这些 js 文件导入我的页面?
我知道使用 Wordpress 最好使用“jQuery”而不是“$”,我只是将它们全部转换为这个结果,使用“$”最终一团糟!
编辑:用这段代码解决
<?php
function customScriptInit() {
if (!is_admin()) {
wp_register_script( 'my-jqueryUi', ABSPATH . '/js/jquery-ui-1.9.2.min.js');
wp_register_script( 'my-cookie', ABSPATH . '/js/cookie.js');
wp_register_script( 'my-json2', ABSPATH . '/js/json2.js');
wp_register_script( 'my-easing', ABSPATH . '/js/easing.min.js');
wp_enqueue_script( 'my-jqueryUi');
wp_enqueue_script( 'my-cookie');
wp_enqueue_script( 'my-json2');
wp_enqueue_script( 'my-easing');
}
}
add_action('wp_enqueue_scripts', 'customScriptInit');
?>
感谢 adeneo 的良好实践分割!