冲突wordpress插件加载脚本

时间:2018-03-21 23:04:05

标签: php wordpress plugins

我为Wordpress创建了两个插件。两个插件都有不同的脚本和样式表。要加载此脚本,我使用此方法:

class load_scripts{

    function register_market(){
            add_action( 'admin_enqueue_scripts', array($this, 'enqueue_admin_market') );
    }

    function enqueue_admin_market(){
            wp_enqueue_style( 'pluginstyle', plugins_url( '/assets/backend-style.css', __FILE__ ) );
            wp_enqueue_script( 'pluginscript', plugins_url( '/assets/backend-script.js', __FILE__ ) );
            wp_enqueue_media();
    }
}
if( class_exists( 'load_scripts')){
$load_scripts = new load_scripts();
$load_scripts->register_market();
}

当然我使用了不同的函数和类名。

现在问题是如果两个插件都被激活,脚本只从一个插件加载。

我试图这样做,但不起作用:

add_action( 'admin_enqueue_scripts', array($this, 'enqueue_admin_market'), 0 );

我该怎么做才能解决这个冲突?

1 个答案:

答案 0 :(得分:0)

你的问题在于以下两点:

wp_enqueue_style( 'pluginstyle', plugins_url( '/assets/backend-style.css', __FILE__ ) );
wp_enqueue_script( 'pluginscript', plugins_url( '/assets/backend-script.js', __FILE__ ) );

即,您的插件中的句柄可能只有'pluginstyle''pluginscript'。根据 wp_enqueue_style() wp_enqueue_script() 函数引用,$handle参数应该是唯一的。例如:

插件1

function enqueue_admin_market(){
    wp_enqueue_style( 'pluginstyle-1', plugins_url( '/assets/backend-style.css', __FILE__ ) );
    wp_enqueue_script( 'pluginscript-1', plugins_url( '/assets/backend-script.js', __FILE__ ) );
    wp_enqueue_media();
}

插件2

function enqueue_admin_market(){
    wp_enqueue_style( 'pluginstyle-2', plugins_url( '/assets/backend-style.css', __FILE__ ) );
    wp_enqueue_script( 'pluginscript-2', plugins_url( '/assets/backend-script.js', __FILE__ ) );
    wp_enqueue_media();
}