2014-02-22 30 views
2

我是新來的Wordpress,這一直困擾着我一段時間。我想知道爲什麼我試圖包含的代碼只在我將jquery.min.js包含在'head'中時才起作用,儘管默認情況下子主題已經包含了jquery.js。讓我在下面解釋。爲什麼我需要jquery.min.js vs jquery.js以便腳本工作?

我靠近我的「身體」的最後一個腳本來指定畫廊圖像不具有「針問題」按鈕顯示盤旋在他們的時候:

<script type="text/javascript"> 
$(document).ready(function() { 
$(".tiled-gallery-item a img").attr("nopin","nopin"); 
}); 
</script> 

此代碼只能(即中,諾信屬性添加到相關的img標籤),當我這包括在「頭」:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript" /></script> 

但是,從檢查源的子主題已經包含的jquery.js出現:

<script type="text/javascript" src="http://blog.froy.com/wp-includes/js/jquery/jquery.js?ver=1.10.2"></script> 
<script type="text/javascript" src="http://blog.froy.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1"></script> 

爲什麼heck是jquery.min.js必需的?我是新來的Wordpress,它很混亂。我認爲jquery.min.js和jquery.js沒有功能差異。什麼是jquery-migrate.min.js?

+0

如果你的腳本是在添加jquery腳本之前添加的,那麼它將不會工作 –

+1

你將不得不包含你的腳本包含jquery後 –

回答

3

WordPress自帶的內置jQuery,但默認不加載它。這可能是因爲你的主題已經被應用wp_enqueue_script('jquery');functions.php

一個解決方案,可以更換此默認行爲是這個片段添加到您的functions.php:也

function modify_jquery() { 
    if (!is_admin()) { 
     wp_deregister_script('jquery'); 
     wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js', false, '1.8.1'); 
     wp_enqueue_script('jquery'); 
    } 
} 
add_action('init', 'modify_jquery'); 

,因爲您使用使用jQuery版本1.10.2jQuery migrate用於檢測和恢復從版本1.9開始已被棄用和刪除的API或功能。

+0

你。是。真棒。正是我需要開始。希望我有更多的信譽來upvote。 – user2651351

+0

很高興幫助:) – Felix

1

Felix提供了所需的東西。爲了充分回答我未來訪問者的問題,請讓我詳細解釋一下。

基本上,WordPress的默認包括jQuery庫默認情況下,無論你的主題(我個人使用Genesis框架與兒童主題)。另外,Wordpress默認將庫設置爲noConflict()模式。這是爲了防止WordPress可以鏈接的其他JavaScript庫的兼容性問題。

如果你想包含任何需要jQuery的腳本,你需要使用wp_enqueue_script()

現在這是重要的部分。如果你不想經歷的煩惱,並希望包括您的<body>或其他地方的末尾簡單,快速,腳本,而無需進入functions.php和使用排隊,jQuery()更換$()快捷。

在我的情況下,

<script type="text/javascript"> 
$(document).ready(function() { 
$(".tiled-gallery-item a img").attr("nopin","nopin"); 
}); 
</script> 

是需要...

<script type="text/javascript"> 
jQuery(document).ready(function(){ 
jQuery(".tiled-gallery-item a img").attr("nopin","nopin"); 
}); 
</script> 

這就是它!我能夠刪除多餘的jquery.min.js,只需依靠Wordpress的默認jQuery庫。

我想通過讀thisthis。您可以在這些鏈接中找到更多詳細信息。

+0

不推薦更改WordPress的默認jQuery。 – acbaltaci

+0

沒錯。這就是爲什麼我想找到一種方法來解決我的問題 - 去除jquery.min.js並依靠默認的WP jquery。 – user2651351

+0

那就是我爲什麼要扔+1的:) – acbaltaci