1

Wordpress に新しいバージョンの jQuery を含めると、ウィジェット ページが機能しなくなります。特定のウィジェットの下矢印をクリックして更新しようとすると、設定が表示されません。

wp_enqueue_script('ecom_jquery_script', 'http://code.jquery.com/jquery-1.9.0.min.js');
wp_enqueue_script('ecom_jquery-ui_script', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js');
wp_enqueue_script('ecom_flexslider_script', plugins_url('/js/ecom-jquery.flexslider.js', __FILE__)); 
wp_enqueue_script('ecom_admin_script', plugins_url('/js/ecom-main.js', __FILE__));

しかし、jquery とそれに依存する他のスクリプトをコメント アウトすると、ウィジェット ページが機能します。

私はすでに解決策を探してみましたが、一般的な解決策はjqueryを競合させないことです:

$j=jQuery.noConflict();

// Use jQuery via $j(...)
$j(document).ready(function(){
  alert('test');
});

しかし、単に新しいバージョンの jquery を含めると、古いバージョンの jquery に依存するスクリプトが機能しなくなるため、これは機能しません。助けてください。

新しいバージョンのjqueryが使用されている場合、wordpressは単に動作を拒否するため、登録解除スクリプトも動作しません:

wp_deregister_script('jquery');
4

1 に答える 1

1

これらは、この作業を行うために実行できるいくつかのトリックであると確信していますが、(バージョンの互換性のために)最善の方法は、 jQueryMigrateプラグインを含めることだと思います。このプラグインは、2つの重要な機能を提供します。

  1. 非推奨の機能が再度有効になるため、v1.8互換のコードが再び機能します
  2. 非推奨の機能が使用されると、開発者コンソールに警告がログに記録されるため、問題の修正が容易になります。

移行プラグインは、jQueryの直後にロードする必要があります。

wp_enqueue_script('ecom_jquery_script', 'http://code.jquery.com/jquery-1.9.0.min.js');
wp_enqueue_script('ecom_jquery_mig_script', 'http://code.jquery.com/jquery-migrate-1.0.0.js');

ただし、最後のjQueryバージョンの変更ログを確認する必要があります。

注:関数はwp_deregister_script('jquery')機能していますが、同じ名前(jquery)で再度登録してから、次のようにエンキューする必要があります。

wp_deregister_script('jquery')
wp_register_script('jquery', 'http://code.jquery.com/jquery-1.9.0.min.js'); 
wp_enqueue_script('jquery');
于 2013-02-11T07:24:43.130 に答える