wordpress: ¿cómo permitir que los usuarios agreguen una ubicación en un mapa?

5 minutos de lectura

Estoy usando WordPress para construir mi sitio web, quiero agregar un formulario que tendrá: nombre, descripción, imagen y ubicación en un mapa. eso es permitir que los usuarios agreguen su propio marcador en un mapa.

y al presionar ‘enviar’, todos los datos (nombre, descripción, imagen, longitud, latitud) se guardarán en una base de datos.

¿Cómo puedo hacer eso? ¿Qué complementos debo usar?

podrías usar Marcas de posición de Google y darles acceso a la creación del tipo de publicación personalizada ‘Placemarks’ que utiliza el complemento. Puede que tengas que hackear la imagen destacada…

Alternativamente, está buscando la creación completa de tipos de publicaciones personalizadas y la integración de la API de Google Maps, un bucle personalizado que utiliza la imagen destacada.

El complemento que se acerca más a lo que necesita es lo que sugirió SMacFadyen: BGMP. Pero si quieres hacerlo tú mismo, deberías investigar esto:

Para el primero, hay muchos tutoriales sobre cómo mostrar mapas e InfoWindows, por lo que no debería tener muchos problemas con eso. Para los tipos de publicaciones personalizadas, hay una increíble generador que debería hacer el 99% de su trabajo. Para Meta Boxes puede ir de varias maneras:

  • enchufar – más fácil pero dependerías de un complemento que no me gusta mucho
  • desde cero – tutorial – que es mucho mejor que el complemento pero requiere mucho trabajo
  • una de las bibliotecas de metabox – esta es la forma en que suelo hacerlo – estoy desarrollando la mía pero aún no está lista, así que mientras tanto recomendaría Mi-Meta-Box o Cajas de meta de WordPress personalizadas reutilizables

  • tnx por la respuesta, para el formulario que estoy usando ‘Formulario de contacto 7’ con ‘Formulario de contacto 7 para extensión de base de datos’. ¿Hay alguna forma de conectar la función de marcador dentro de esos complementos?

    – Shemesh

    1 oct 2012 a las 18:32

  • Dios sabe. Como dije, tiendo a no confiar en los complementos de otras personas 🙂

    – Miha Rekar

    2 de octubre de 2012 a las 7:59

Varias veces, al buscar cómo hacer que esto funcione, me topé con este hilo. Cada vez, no estaba muy contento con la forma en que los complementos existentes lidian con esto. Entonces, ahora armo esto yo mismo.

Aquí hay una descripción general de mi solución.

  1. Usa el complemento Interfaz de usuario de tipo de publicación personalizada para crear un tipo de publicación personalizada para los marcadores en el mapa.
  2. Usa el complemento Campos personalizados avanzados para agregar un campo a este tipo de publicación personalizada que representa la ubicación. El tipo de campo es del tipo ‘Google Map’.
  3. Copia el estándar Ejemplo de agrupación en clústeres de la API de Google Maps al archivo de tema apropiado en su tema.
  4. Para mostrar sus marcadores, genere la lista de ubicaciones, en su archivo de tema, solicitando las publicaciones de su tipo de publicación personalizada recién creada.
  5. Para cada marcador/ubicación, seleccione el campo ‘Google Map’ y extraiga la latitud y la longitud.
  6. Para cada marcador/ubicación, construya el elemento de matriz apropiado para la matriz con todas las ubicaciones, con, al menos, la latitud y la longitud, y probablemente también el contenido de una ventana de información.

Esto debería darle un mapa con todas las ubicaciones trazadas.

Para permitir que los usuarios agreguen ubicaciones:

  1. Agregue un oyente a su mapa que escuche los clics y devuelva la ubicación en la que se hizo clic. Quizás este oyente solo se ejecuta después de que el usuario haya expresado su intención de agregar una ubicación al mapa.
  2. Cuando el usuario haya hecho clic, abra un formulario, por ejemplo en un modal. El formulario debe contener campos ocultos con la latitud y la longitud y, por ejemplo, también podría contener una imagen estática de la ubicación relevante. Otros campos de formulario serían los campos que necesita para su propósito.
  3. Envíe el formulario usando AJAX. Referirse, por ejemplo, a este tutorial. En las funciones de su tema.php, puede validar el envío y agregar el nuevo envío a su base de datos de WordPress, que coincida con su nuevo tipo de publicación personalizada.

Dependiendo de cómo almacene su nueva ubicación, en su próxima recarga de mapa, se incluirá la nueva ubicación. (O tal vez necesite autorizar la nueva ubicación, primero). También puede recargar todas las ubicaciones a través de AJAX.

  • He estado tratando de hacer algo similar a esto, pero soy un principiante con wordpress y no estoy seguro de entender todo lo que describe. Si todavía está escuchando y tiene tiempo, estaría muy agradecido por una explicación más detallada de la viñeta 4. Tal vez incluso un fragmento de código que muestre cómo hacerlo.

    – plithner

    26 de abril de 2018 a las 21:05

  • Hola @plithner. En este punto, no tengo el código de fácil acceso, pero esto no es tan complejo. El más fácil (pero no el más sólido) es simplemente usar wp_query para devolver todas las publicaciones del tipo de publicación en cuestión.

    – MastaBaba

    27 de abril de 2018 a las 0:42

Creador de perfiles le permite hacer precisamente eso. Cree un formulario de registro frontal que incluya los campos personalizados requeridos y un campo de mapa para que los usuarios fijen o ingresen su ubicación.

Luego, utilizando el módulo de Listado de usuarios (Directorio de miembros) incorporado, puede mostrar un mapa de todos los usuarios ubicaciones.

¿Ha sido útil esta solución?