2016-01-29 61 views
0

我們一直在開發一個Wordpress主題,並偶然發現了一個奇怪的問題。由bootstrap.js顯示的彈出窗口會出現幾分之一秒,然後消失。經過深入研究後,我發現問題是由也使用bootstrap.js的插件引起的。兩個bootstrap.js被加載,一個來自我們的主題,另一個來自插件。如何避免這種衝突?如何避免Bootstrap.js的雙重包含?

回答

1

解決方案是檢查bootstrap.js是否已入隊。我已將以下內容添加到主題的functions.php中:

function enqueue_scripts() { 
    // Check if bootstrap is already there 
    $bootstrap_enqueued = FALSE; 
    foreach($wp_scripts->registered as $script) { 
     if ((stristr($script->src, 'bootstrap.min.js') !== FALSE or 
      stristr($script->src, 'bootstrap.js') != FALSE) and 
      wp_script_is($script->handle, $list = 'enqueued')) { 

      $bootstrap_enqueued = TRUE; 
      break; 
     } 
    } 

    if (!$bootstrap_enqueued) { 
     wp_enqueue_script('theme-bootstrap-js', get_template_directory_uri() . '/js/bootstrap.min.js', array(), '2015', true); 
} 

// Note the last parameter. It's important to be the last in the list of hooks 
add_action('wp_enqueue_scripts', 'enqueue_scripts', PHP_INT_MAX);` 
+0

你好。我有同樣的問題。你能爲我提供一些指導嗎?這放在functions.php中?我需要重命名什麼?我正在使用Avada主題,並且遇到了Formidable Pro Modal Popup的問題。強大的Pro有wp-content/themes/Avada/assets/js/bootstrap.js可怕的Pro wp-content/plugins/formidable-modal/js/bootstrap.min.js – ryanb4614

+0

在這種情況下,你必須更新functions.php Avada主題或在強大的彈出窗口中。在那裏,找到對bootstrap.min.js的引用並將其刪除或註釋掉。然後添加我在這裏發佈的代碼。儘管如此,請注意,Avada或Formidable的任何更新都會覆蓋您的更改。最好聯繫該軟件的開發人員,並要求他們將這些代碼包含到他們的軟件中。 – mikryz