[英]Properly register and enqueue scripts in wordress - Issue getting scripts to work
我一直在研究wordpress主題,並且在網站中使用了不同的javascript元素。 當我談到Javascript和JQuery時,我還是個菜鳥,所以我將腳本和CDN鏈接直接插入Header.php的<head>
部分。
當我的某些下拉列表停止工作時,我意識到這在JQuery版本之間造成了沖突,並且我一直都在做錯此事。
因此,我已經了解了有關注冊和排隊腳本的所有知識,但是沒有運氣讓下拉菜單重新運行。
您能從我下面發布的代碼中分辨出什么可能導致此問題嗎? 我知道我很可能因新手而犯了一個愚蠢的錯誤,我只是無法理解它是什么。
這兩個片段是網站上兩個重復元素的腳本。 滑出切換框和下拉式手風琴框。
手風琴
jQuery(document).ready(function($) {
$( "#accordion" ).accordion({
collapsible: true, active: false
});
$('#accordion2').accordion({collapsible: true, active: false});
$('#accordion3').accordion({collapsible: true, active: false});
});
Togglebox.js
jQuery(document).ready(function($) {
$( ".dropdown" ).click(function() {
$( ".togglebox" ).toggle( "slide", 1000 );
});
});
下面的代碼片段是我放置在Functions.php文件中的代碼。
function my_scripts_method() {
if ( !is_admin() ) {
wp_enqueue_script('jquery-ui-accordion');
wp_enqueue_script(
'custom-accordion',
get_template_directory_uri() . '/js/accordion.js',
array('jquery')
);
wp_enqueue_script(
'custom-script',
get_template_directory_uri() . '/js/tabs.js',
array('jquery')
);
wp_enqueue_script('jquery-ui-toggle');
}
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
我已經將'accordion.js'和'togglebox.js'文件本地保存在正在使用的主題的JS文件夾中。
關於此的任何幫助將不勝感激。
創建2個JS文件:
將2個文件保存在主題的JS文件夾中。 之后,將腳本注冊並放入主題的Functions.php文件中。
您不必注冊已經包含在Wordpress中的jquery和jquery ui。 這里有兩個有用的鏈接:
https://developer.wordpress.org/reference/functions/wp_enqueue_script/ https://developer.wordpress.org/reference/functions/wp_register_script/
在Togglebox.js中嘗試以下操作:
jQuery(document).ready(function($) {
$( ".dropdown" ).click(function() {
$( ".togglebox" ).slideToggle( 1000 );
});
});
在functions.php中嘗試一下:
wp_enqueue_script('jquery-ui-accordion');
wp_register_script( 'custom-accordion', get_template_directory_uri() . '/js/accordion.js', array('jquery-ui-accordion'), '1', true );
wp_enqueue_script( 'custom-accordion' );
wp_register_script( 'custom-togglebox', get_template_directory_uri() . '/js/togglebox.js', array('jquery'), '1', true );
wp_enqueue_script('custom-togglebox');
將functions.php中的custom更改為您的主題。 我嘗試了這段代碼,它為我工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.