2011-02-11 30 views
1

我有这个网店,目前部署,它是基于WordPress的。如果管理员输入地址,我会添加一个功能,地图会显示出来。到目前为止,这很好,事情做得很好。如何解决与WordPress的管理谷歌地图Javascript冲突Javascript

不过,我注意到,每当我补充一点:

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

这显然是谷歌地图JS,拖放WordPress管理(最明显的按钮区)的功能不起作用。我尝试评论这条线,瞧,小部件的拖放回来了,但当然没有谷歌地图。

你有没有遇到过这种情况?你是怎么做到的?目前,我正在通过Widgets的非JavaScript版本操作我的管理页面。可行,但不理想。

回答

3

这可能会帮助你,因为它只是解决了我的问题。

我已经加载谷歌地图一样的,你可是在我自己的js文件我有:

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

这样,它是不是在页面加载没有#gmap元素

+0

当然!这是辉煌,谢谢! – 2011-02-16 02:21:04

0

尝试:

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

编辑:请评论,如果这是在管理面板中使用,我会找到一个解决办法;上面的代码只会排队前端的googlemap脚本。

+0

是啊,我也用在管理面板谷歌地图:( – 2011-02-11 09:43:56

0

您可以控制极其精确的管理面板中必须加载脚本的页面。第一个想法你必须考虑的是:如果没有找到DOM元素,maps API会生成错误“a未定义”。因此,您必须将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. 行动挂钩admin_enqueue_scripts大火就在WP加载管理面板的脚本。
  2. 参数$ hook标识当前文件。
  3. my_custom_post_type是...需要Google地图的自定义帖子类型。当然,它也可以是'发布'或'页面'。所以,上面的代码不允许API在网页和帖子管理面板加载。
  4. $钩标识文件edit.php,这是产生帖子列表文件(或网页,或自定义文章类型)。因此,如果当前页面的列表,而不是一个“新的职位”或“修改后”面板中,脚本被中断。
  5. 的最后一次机会是一个“新”或“编辑”你上面指定的职位类型的面板。只有那里的地图API将被载入
  6. 不要忘了自定义的元框,将举行地图的DOM元素