【问题标题】:conflict wordpress plugin loading scripts冲突 wordpress 插件加载脚本
【发布时间】:2018-03-21 23:04:05
【问题描述】:

我为 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 );

我能做些什么来解决这个冲突?

【问题讨论】:

    标签: php wordpress plugins


    【解决方案1】:

    您的问题在于这两行:

    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();
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-14
      • 1970-01-01
      • 2014-11-11
      • 2011-06-18
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多