如何避免双重包含Bootstrap.js?

时间:2016-01-29 05:58:50

标签: wordpress twitter-bootstrap wordpress-plugin

我们一直在开发一个Wordpress主题,偶然发现了一个奇怪的问题。 bootstrap.js显示的弹出窗口会出现几分之一秒然后消失。经过深入研究后,我发现问题是由一个插件引起的,该插件也使用了bootstrap.js。加载了两个bootstrap.js,一个来自我们的主题,另一个来自插件。如何避免这种冲突?

1 个答案:

答案 0 :(得分: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 );`