3

独自の WordPress テーマ用のカスタム ウィジェットを作成しています。

WordPress 3.5 から、古い ThickBox の代わりに新しい Media Uploader があります。

私のウィジェットは WordPress の 3.5 より古いバージョンでは問題なく動作していましたが、新しいメディア アップローダによって古い動作が妨げられています。

wp_enqueue_media関数の存在についてコストラクタにチェックを追加しました。

if( function_exists( 'wp_enqueue_media' ) ) {
    wp_enqueue_media();
}

しかし、cos のこの部分が実行されると、javascript は Js エンジンを停止するコンソールでエラーをスローします。

Uncaught TypeError: Cannot read property 'id' of undefined    load-scripts.php:69

すべてのウィジェット コードを削除し、最小限に減らしました...エラーは wp_enqueue_media() 呼び出しが原因ですが、その理由と修正方法について理解できません。

また、 Wordpress 3.5 custom media upload for your theme optionsも読みましたが、この問題については言及されていません。

誰かが私を正しい方向に向けることができますか? WordPress 3.5 Media Uploader に関するドキュメントはありますか?

4

4 に答える 4

1

発生している問題は、おそらくカスタム jquery をヘッダーに配置し、wordpress jquery を登録していないことが原因です。複数のjqueryが定義されている場合、そのエラーが発生します。

私の提案は、jqueryスクリプトを削除するか、ワードプレスから削除する必要があるということです

function remove_jquery() {

wp_deregister_script('jquery');
//wp_register_script('jquery', ("//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"), false);

}

if(!is_admin()){add_action('init', 'remove_jquery');}

jquery wordpress を使用することをお勧めします。そうでない場合、エンキューする適切な方法は、デフォルトの登録を解除して jquery を登録することです。remove_jquery 関数からコメントを削除するだけです。

また、上記のコードは functions.php に入れる必要があります

乾杯。

于 2013-03-31T15:02:41.230 に答える
0

デバッグするには、ブラウザーに送信された、縮小されていないバージョンの js を取得する必要があります。ドキュメントを参照してください:

SCRIPT_DEBUG

SCRIPT_DEBUG は関連する定数で、通常ロードされる縮小バージョンではなく、コア CSS および Javascript ファイルの「開発」バージョンを WordPress に強制的に使用させます。これは、組み込みの .js または .css ファイルへの変更をテストする場合に便利です。デフォルトは false です。

define('SCRIPT_DEBUG', true);
于 2013-02-09T15:45:32.787 に答える