防弹的方式,以避免对WordPress插件的jQuery冲突(Bullet proof way to

2019-07-31 11:30发布

我一直在开发WordPress插件了一会儿,我似乎总是让我所有的插件以下问题jQuery的冲突问题。

我已经尝试了很多不同的方式,以避免这些,但我总是当他们安装了一个关我的插件已经停止了另外一个插件从工作aahhhhh用户与我联系说。

我真的很想得到这个排序,因为我了解您的困扰这可能是人们。

我总是设置和选项,或包括wordpresses jQuery的,下面是不工作的代码的例子。

add_action( 'init', array( $this, 'include_jquery' ) );

function include_jquery(){

                   wp_deregister_script('jquery');
                   wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"), false, '1.7.1');
                   wp_enqueue_script('jquery');

            }

好了,所以这个问题后,我现在已经在插件管理一个选择选项设置为yes切换或不包括jQuery的或不我知道这是自动安装,但有些用户删除此,这个工程的一些人,但不是全部。

如果包括WordPress的jQuery的,我知道,你必须运行与下面的jQuery的。

jQuery(document).ready(function ($) {

jQuery的,而不是美元符号$

我理解并已经使用jQuery的任何冲突,并试图和测试了一些即使不是全部关闭这些http://api.jquery.com/jQuery.noConflict/

$.noConflict();
  jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
  });

这与其他适用于一些但不是与特定的用户仍然发生冲突的所有用户。

我希望这个职位的一些我们的WordPress插件开发人员可以帮忙,并张贴到使用我们的插件在WordPress和jQuery没有得到冲突问题防弹方式。

谢谢

Answer 1:

难道不是一个封闭的工作?

(function($){
    // your plugin code
})(jQuery);


Answer 2:

阅读手抄本的以下部分:

  • 从非默认位置加载默认的WordPress的脚本

  • jQuery的noConflict包装

您应该使用wp_enqueue_scripts挂钩,而不是init

而且你应该使用jQuery.noConflict(); 而不是$.noConflict();



文章来源: Bullet proof way to avoid jquery conflicts on wordpress plugins