刚接手一个wordpress项目。前开发人员搞砸了主题,因此它可以防止我的ajax表单(gravityform)正常工作。 Proplem是他们在header.php中添加jquery和自定义js的方式:
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/slides.min.jquery.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/script.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/tabs.min.js"></script>
我完全是wordpress主题思想的新手,如何使用wp_register_script和wp_enqueue_script在我的functions.php中正确添加这些脚本。
如何找出哪些脚本取决于其他脚本?喜欢调用它们的正确顺序?
EDIT 我通过wp_enqueue_scripts以正确的方式包含脚本。但现在我面临着奇怪的JS错误。 TypeError:$不是函数
当我用jQuery替换$时,它可以工作。但这不能成为一种解决方案。为什么会出现此错误?
答案 0 :(得分:3)
避免资产冲突的最佳方法是正确访问文件。为此,您必须使用wp_enqueue_script
这样做的一个好方法是将它作为函数的一部分放在你的functions.php文件中,如此
wp_register_script
插入函数wp_enqeue_script
插入函数所以 -
function load_scripts() {
wp_register_script( 'script-name', get_template_directory_uri() . '/js/script.js', array( 'scriptyouwillwaittobeloaded' ) );
wp_enqueue_script( 'script-name' );
}
add_action('wp_enqueue_scripts', 'load_scripts');
在此示例中,然后将在header.php文件中调用函数load_scripts()
。看看wp_register_script也可以更好地理解这些论点,但总结一下 -
第一个参数:是您要用作此脚本的引用的名称
第二个参数:是脚本的实际链接
第三个参数:是要在此脚本之前加载的脚本(在此脚本加载之前要等待的脚本)
对于wp_enqueue_script,参数只是对名称的引用(wp_register_script的第一个参数)
add_action函数参数:
第一个参数:你正在“挂钩”的功能
第二个参数:你创建的函数将被“挂钩”
要注意 - 您可以在此函数中加载任意数量的脚本,这只是加载单个脚本的示例。
答案 1 :(得分:0)
开发人员所做的只是使用一个简单的参考。如果您想将WP脚本排队,请查看wp_enqueue_script
我不相信脚本会依赖于特定版本的jquery以外的任何东西。
他们是这样做的:
<?php
function my_scripts_method() {
wp_enqueue_script(
'custom-script',
get_stylesheet_directory_uri() . '/js/custom_script.js',
array( 'jquery' )
);
}
add_action( 'wp_enqueue_scripts', 'my_scripts_method' );
?>