我为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 );
我该怎么做才能解决这个冲突?
答案 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();
}