0

我在我的網站上已經包含了jQuery,但是當使用一些具有Gravity Forms的條件邏輯時,它再次包含jQuery以及它自己的腳本。WordPress:我如何禁用Gravity Forms包含jQuery?

輸出的樣子:

<script type='text/javascript' src='//localhost:8080/wp-includes/js/jquery/jquery.js?ver=1.11.3'></script> 
<script type='text/javascript' src='//localhost:8080/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.2.1'></script> 
<script type='text/javascript' src='//localhost:8080/wp-content/plugins/gravityforms/js/jquery.json.js?ver=1.9.14'></script> 
<script type='text/javascript' src='//localhost:8080/wp-content/plugins/gravityforms/js/gravityforms.min.js?ver=1.9.14'></script> 
<script type='text/javascript' src='//localhost:8080/wp-content/plugins/gravityforms/js/conditional_logic.min.js?ver=1.9.14'></script> 

我想要做的就是保持重力窗體的腳本,但不包括其列入jQuery的jQuery的遷移。我自己包括這些,不希望GF爲我做這件事。

我已經搜索包含這些腳本的句柄,但找不到正確的鉤子。我有以下,但它也排除了GF腳本,這顯然不是我所希望發生的:

function remove_unwanted_assets() { 

    // Gravity Forms plugin. 
    wp_deregister_script('jquery'); 

} 

add_action('wp_enqueue_scripts', 'remove_unwanted_assets', 100); 

這似乎排除一切從GF。

任何幫助或指導,非常感謝。謝謝。

+0

它看起來像重力形式是包括'jquery.json.js' ......不是'jquery.js' ......至少根據您共享的代碼。另一個jQuery是WordPress中包含的默認jQuery(也就是你應該使用的那個) – rnevius

+0

也許是這樣,但要做wp_deregister_script('jquery');也排除GF腳本。不知道爲什麼!或者如何讓jQuery排除並且不影響GF。 –

+1

不知道爲什麼我的問題被拒絕投票。絕對沒有意義。我提供了一個問題,一個嘗試的解決方案和完整的代碼示例。令人難以置信。 –

回答

2

可靠地「取消註冊」默認jQuery的唯一方法是保持add_action()調用的優先級爲10。這是因爲Gravity Forms排列優先級爲11的腳本。然後,您就必須在同手柄下注冊自己的jQuery版本:

function so_33280386_alter_assets() { 
    // De-register the default version of jQuery 
    wp_deregister_script('jquery'); 
    // Register a new version of jQuery under the same handle 
    wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', false, '1.9.1', true); 
} 
add_action('wp_enqueue_scripts', 'so_33280386_alter_assets', 10); 
0

我試圖完成同樣的事情,我發現了一個簡單的解決方法。我在我自己編譯的js文件中添加jQuery,所以我不希望WordPress的文件在那裏。只需取消註冊該腳本,然後重新註冊該腳本而無需添加源代碼。

wp_deregister_script('jquery'); 

wp_register_script('jquery', '', '', '', true); 

我也正在使用一些其他的片段,以保持Ajax加載正確加載。

function gravity_js_to_footer() { 
    return true; 
} 
add_filter("gform_init_scripts_footer", "gravity_js_to_footer"); 



// Fix the ajax jquery inline code issue when gravity js is being called in the footer 
//https://bjornjohansen.no/load-gravity-forms-js-in-footer 
add_filter('gform_cdata_open', 'wrap_gform_cdata_open'); 
function wrap_gform_cdata_open($content = '') { 
    $content = 'document.addEventListener("DOMContentLoaded", function() { '; 
    return $content; 
} 
add_filter('gform_cdata_close', 'wrap_gform_cdata_close'); 
function wrap_gform_cdata_close($content = '') { 
    $content = ' }, false);'; 
    return $content; 
} 

這些東西結合起來,我不能稱之爲enqueue jquery,並且在頁腳中也包含所有東西。

好運

相關問題