7

私はしばらくワードプレス プラグインを開発してきましたが、すべてのプラグインで Jquery の競合の問題が常に発生しているようです。

これらを回避するために非常に多くの異なる方法を試しましたが、私のプラグインから 1 つをインストールすると、別のプラグインが機能しなくなったという連絡を常にユーザーから受け取ります。

これが人々にとってどれほどイライラするかを理解しているので、私は本当にこれを整理したいと思っています。

私は常に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 または no を切り替えて jquery を含めるかどうかを切り替えますが、自動的にインストールされることはわかっていますが、一部のユーザーはこれを削除します。これは一部の人では機能しますが、すべてではありません。

wordpress jqueryを含める場合、次のようにjqueryを実行する必要があることを知っています。

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

ドル記号 $ の代わりに jQuery

私は理解し、jquery no conflictを使用し、これらのすべてではないにしてもいくつかを試してテストしました http://api.jquery.com/jQuery.noConflict/

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

これは他のものと同様に、一部のユーザーでは機能しますが、特定のユーザーと競合が発生するすべてのユーザーでは機能しません。

この投稿から、wordpress プラグイン開発者の何人かが助けになり、プラグイン内で競合の問題が発生することなく wordpress と jquery を使用するための防弾方法を投稿できることを願っています。

ありがとう

4

2 に答える 2

1

コーデックスの次の部分を読んでください。

wp_enqueue_scriptsの代わりにフックを使用する必要がありinitます。

jQuery.noConflict();の代わりに使用する必要があり$.noConflict();ます。

于 2012-09-10T10:07:55.183 に答える