【问题标题】:wordpress - how let users add location on a map?wordpress - 如何让用户在地图上添加位置?
【发布时间】:2012-09-21 20:39:43
【问题描述】:

我正在使用 Wordpress 构建我的网站,我想添加一个表单,其中包含:名称、描述、图像和 地图上的位置。即让用户在地图上添加自己的标记。

然后按“提交”,整个数据(名称、描述、图像、经度、纬度)将被保存到数据库中。

我该怎么做?我应该使用哪些插件?

【问题讨论】:

    标签: wordpress google-maps


    【解决方案1】:

    您可以使用Google Placemarks 并让他们访问插件使用的“地标”自定义帖子类型的创建。你可能不得不破解特色图片..

    或者,您正在查看完整的自定义帖子类型创建和谷歌地图 API 集成,这是一个利用特色图片的自定义循环。

    【讨论】:

      【解决方案2】:

      最接近您需要的插件是 SMacFadyen 建议的 - BGMP。但是,如果您想自己这样做,则需要研究一下:

      对于第一个,有很多关于如何显示地图和 InfoWindows 的教程,因此您应该对此没有太大问题。对于自定义帖子类型,有一个很棒的 generator 应该可以完成 99% 的工作。对于 Meta Box,您可以采用多种方式:

      • plugin - 最简单但你会依赖一个我不太喜欢的插件
      • 从头开始 - tutorial - 这比插件好很多,但需要大量工作
      • 元盒库之一 - 这是我通常采用的方式 - 我正在开发自己的,但它还没有准备好,所以同时我会推荐 My-Meta-BoxReusable Custom WordPress Meta Boxes

      【讨论】:

      • tnx 用于回复,对于我使用“联系表格 7”和“联系表格 7 到数据库扩展”的表格。有没有办法在这些插件中挂钩标记功能?
      • 天知道。正如我所说 - 我倾向于不依赖其他人的插件:)
      【解决方案3】:

      有好几次,在搜索如何使这项工作时,我偶然发现了这个线程。每次,我对现有插件处理这个问题的方式都不是很满意。所以,我现在自己把它放在一起。

      这是我的解决方案的概述。

      1. 使用插件Custom Post Type UI 为地图上的标记创建自定义帖子类型。
      2. 使用插件Advanced Custom Fields 向此自定义帖子类型添加一个表示位置的字段。字段类型为“Google Map”类型。
      3. 将标准Google Maps API clustering example 复制到您主题中的相应主题文件中。
      4. 为了显示您的标记,通过在您的主题文件中请求您新创建的自定义帖子类型的帖子来生成位置列表。
      5. 对于每个标记/位置,选取“Google 地图”字段并抽象出纬度和经度。
      6. 对于每个标记/位置,为包含所有位置的数组构造适当的数组元素,至少包含纬度和经度,还可能包含信息窗口的内容。

      这应该会给您一张地图,其中标出了所有位置。

      允许用户添加位置:

      1. 向您的地图添加一个监听器,用于监听点击并返回点击的位置。可能只有在用户表达了向地图添加位置的意图后,此侦听器才会运行。
      2. 当用户单击时,打开一个表单,例如在一个模式中。该表单应包含带有纬度和经度的隐藏字段,例如,还可以包含相关位置的静态图像。其他表单字段将是您需要的字段。
      3. 使用 AJAX 提交表单。例如,请参阅this tutorial。在您主题的 functions.php 中,您可以验证提交并将新提交添加到您的 Wordpress 数据库中,以匹配您的新自定义帖子类型。

      根据您存储新位置的方式,在您下次重新加载地图时,新位置将被包括在内。 (或者您可能需要先授权新位置。) 您还可以通过 AJAX 重新加载所有位置。

      【讨论】:

      • 我一直在尝试做类似的事情,但我是 wordpress 的初学者,我不确定我是否理解你所描述的所有内容。如果您还在听并且有时间,我将非常感谢您对项目符号 4 进行更详细的解释。甚至可能有一段代码显示如何做到这一点。
      • 嗨@plithner。在这一点上,我没有太容易访问的代码,但这并不是那么复杂。最简单的(但不是最强大的)是仅使用 wp_query 返回相关帖子类型的所有帖子。
      【解决方案4】:

      Profile Builder 允许您这样做。创建一个前端注册表单,包括所需的自定义字段和地图字段,供用户固定或输入他们的位置。

      然后使用内置的用户列表(成员目录)模块,您可以显示map of all users 位置。

      【讨论】:

        猜你喜欢
        • 2020-02-07
        • 1970-01-01
        • 2019-05-09
        • 2010-12-13
        • 1970-01-01
        • 1970-01-01
        • 2016-04-16
        • 2018-11-13
        • 2023-02-15
        相关资源
        最近更新 更多