2011-02-11 19 views
1

私は現在展開されているこのwebshopをWordpressに基づいています。管理者が住所を入力すると地図が表示される機能を追加しました。これまでのところ、とてもうまくやっています。明らかにGoogleマップJS、ドラッグをあるGoogleマップを解決する方法Wordpress adminとのJavascriptの衝突Javascript

wp_enqueue_script('googlemap', 'http://maps.google.com/maps/api/js?sensor=false', array(), false, true); 

と(ほとんど明らかにウィジェットエリア)Wordpressの管理の機能をドロップ動作しません:

しかし、私はこれを追加するたびことに気づきました。私はこの行をコメントしようとしましたが、ウィジェット、ドラッグアンドドロップのウィジェットは戻っていますが、もちろんGoogle Mapsはありません。

これも遭遇しましたか?あなたはどうやってこれについて行きましたか?現在、私は管理者ページをJavaScript以外のバージョンのウィジェットから操作しています。実行可能ですが、理想的ではありません。

答えて

3

これはちょうど私の問題を修正したので、これはあなたを助けるかもしれません。

私はGoogleがあなたと同じマッピングしますが、私自身のjsファイルに私が持っているロードました:

if($('#gmap').length != 0){ 
    initialize(); 
} 

それは#gmap要素なしページにロードされていないその方法

+0

を使用し保持するカスタムメタボックスを忘れてはいけませんロードされます!これはあります素晴らしい。ありがとう! –

0

試してみてください。

if (!is_admin()) { 
wp_enqueue_script('googlemap', 'http://maps.google.com/maps/api/js?sensor=false', array(), false, true); 
} 

編集:これは管理パネルで使用されていると私は、回避策を見つけることができたら、コメントしてください。上記のコードは、フロントエンドにgooglemapスクリプトを入れるだけです。

+0

ええ、私も管理パネルでグーグルマップ:(もちろん –

0

あなたがコントロールすることができます極端な精度で、スクリプトをロードする必要のある管理パネルのページ。最初に考慮する必要があると思うのは、DOM要素が見つからない場合、マップAPIはエラー "a is undefined"を生成します。したがって、管理パネルの右ページにAPIを読み込む必要があります。

私は、特定のカスタムポストタイプの編集画面でGMapsのAPIをロードするために次のスクリプトを使用します。

add_action('admin_enqueue_scripts', 'my_admin_enqueue_scripts'); 
function my_admin_enqueue_scripts($hook) { 
    if(('my_custom_post_type' != get_post_type()) || ('edit.php' == $hook)) 
    return; 
    // enqueue GMaps API 
    wp_enqueue_script('google-maps-api', 'http://maps.googleapis.com/maps/api/js?sensor=false'); 
} 
  1. WPは、管理パネルのスクリプトをロードするだけのときにアクションフックが火災をadmin_enqueue_scripts。
  2. 引数$ hookは、現在のファイルを識別します。
  3. my_custom_post_typeは... Googleマップが必要なカスタム投稿タイプです。もちろん、「ポスト」や「ページ」でも構いません。したがって、上記のコードでは、APIをページに読み込んで管理パネルに投稿することはできません。
  4. $ hookは、edit.phpファイルを識別します。これは、投稿(またはページ、またはカスタム投稿タイプ)のリストを生成するファイルです。したがって、現在のページがリストであり、 '新しい投稿'または '投稿の編集'パネルでない場合、スクリプトは中断されます。
  5. 最後のチャンスは、上記で指定した投稿タイプの「新規」または「編集」パネルです。のみがマップのAPIが
  6. は、マップのDOM要素
関連する問題