因此, 我尝试了一段时间, 将我的jQuery脚本(一个插件, 一个自行编写)包含到我的自定义wordpress主题中。尽管阅读了很多有关如何正确包含它们的信息, 但我还是无法设法使其正常工作。因此, 我有一个插件脚本(jQuery.fullPage.js)和一个自定义的书面形式(main.js), 两者都放在”
assets / scripts /”
目录中。
如说明中所述, 我将它们注册在functions.php中:
function load_theme_scripts() {
wp_register_style('fullPageStyle', get_template_directory_uri() . '/custom-css/jquery.fullPage.css');
wp_enqueue_style( 'fullPageStyle');
wp_register_script( 'theFullPage', get_template_directory_uri() . '/assets/scripts/jquery.fullPage.js', array('jquery'), false, true );
wp_enqueue_script( 'theFullPage');
wp_register_script( 'mainScript', get_template_directory_uri() . '/assets/scripts/main.js', array( 'jquery' ), '1.0.0', true );
wp_enqueue_script( 'mainScript');
}
add_action( 'wp_enqueue_scripts', 'load_theme_scripts' );
`
仅具有此代码就什么也没有发生。经过一番阅读后, 我发现(不知道这是否是正确的方法)我也必须在html代码的< head> 中调用脚本。因此, 在home.html的< head> 中, 我现在有以下代码:
<
head>
<
title>
<
?php wp_title()?>
<
/title>
<
link rel="stylesheet" href="http://www.srcmini.com/<
?php bloginfo('stylesheet_url');
?>
">
<
script type='text/javascript' src='http://localhost/portfolio_wordpress/wp-content/themes/myportfolio/assets/scripts/jquery.fullPage.js'>
<
/script>
<
script type='text/javascript' src='http://localhost/portfolio_wordpress/wp-content/themes/myportfolio/assets/scripts/main.js'>
<
/script>
<
?php wp_head();
?>
<
/head>
现在调用了脚本(如果不按最佳实践, 请更正我!), 但我得到了错误:在main.js中找不到变量:$。我认为这可能是因为WordPress在jQuery中的兼容模式, 所以将$替换为jQuery, 然后错误是找不到变量:jQuery。
$。的main.js代码:
$(document).ready(function() {
alert("Main script is workin!");
$('#fullpage').fullpage({
scrollingSpeed: 1000
});
alert("Main script is workin!");
});
带有jQueryinmain的main.js:
jQuery(document).ready(function($) {
alert("Main script is workin!");
$('#fullpage').fullpage({
scrollingSpeed: 1000
});
alert("Main script is workin!");
});
请帮助我, 这真的使我发疯!由于我是第一次为wp编写自定义主题, 因此欢迎以更好或更简洁的方式编码此功能的技巧!
#1这只是一个例子
function wptuts_scripts_important()
{
// Register the script like this for a plugin:
wp_register_script( 'custom-script', plugins_url( '/js/custom-script.js', __FILE__ ) );
// or
// Register the script like this for a theme:
wp_register_script( 'custom-script', get_template_directory_uri() . '/js/custom-script.js' );
// For either a plugin or a theme, you can then enqueue the script:
wp_enqueue_script( 'custom-script' );
}
add_action( 'wp_enqueue_scripts', 'wptuts_scripts_important', 5 );
#2如果该js位于plugin文件夹中, 则需要使用plugin_url()路径而不是get_template_directory_uri()。因为模板目录函数用于已激活主题的定位路径。希望对你有帮助。例如:
add_action( 'wp_enqueue_scripts', 'load_plugin_scripts');
function load_plugin_scripts(){
wp_enqueue_script( 'plugin_custom_lm_js', plugins_url( 'assets/scripts/jquery.fullPage.js', __FILE__ ) );
}
#3【无法在我的wp主题中包含自定义jQuery脚本】找到解决方案!
所以我找出了问题所在!其实……真的很蠢。要加载jQuery, 请使用< ?php wp_enqueue_script(” jquery” ); ?> 必须在< ?php wp_head(); 之前调用; ?> 。所有自定义脚本, 例如main.js必须这样调用:< script type =’ text / javascript’ src =http://www.srcmini.com/” < ?php bloginfo(” template_url” ); ?> / assets / scripts / main.js” > < / script> < ?php wp_head(); ?> 功能。
所以现在我的HTML总< head> 看起来像这样:
<
head>
<
title>
<
?php wp_title()?>
<
/title>
<
link rel="stylesheet" href="http://www.srcmini.com/<
?php bloginfo('stylesheet_url');
?>
">
<
?php wp_enqueue_script("jquery");
?>
<
?php wp_head();
?>
<
script type='text/javascript' src="http://www.srcmini.com/<
?php bloginfo("template_url");
?>
/assets/scripts/jquery.fullPage.js">
<
/script>
<
script type='text/javascript' src="http://www.srcmini.com/<
?php bloginfo("template_url");
?>
/assets/scripts/main.js">
<
/script>
克里斯·科耶尔(Chris Coyier)的https://digwp.com/2009/06/includes-jquery-in-wordpress-the-right-way/中的帖子对我解决这个问题有很大帮助!谢谢!
推荐阅读
- 默认情况下无法选择选项
- 无法为WordPress主题导入前端数据
- 无法在WordPress中导入Divi布局
- 找不到WordPress页脚图片网址
- 无法在Redux上禁用开发模式
- 无法覆盖woocommerce variable.php模板
- 无法在WordPress中删除section
- ICCV 2021 口罩人物身份鉴别全球挑战赛冠军方案分享
- docker-compose常用模板