Cómo crear diferentes tipos de Custom Fields

Inicio Foros WordPress Programación Cómo crear diferentes tipos de Custom Fields

Este debate contiene 14 respuestas, tiene 3 mensajes y lo actualizó  jcglp hace 5 años, 8 meses.

  • Autor
    Publicaciones
  • #65956

    Fliberty
    Participante

    Hola a todos, como siempre aquí dando lata, bueno recurro a ustedes por que no encuentro información que sea de ayuda.

    El problema radica en que vengo creando un formulario de publicación desde el front end, el formulario funciona correctamente, pero por algunos requerimientos es necesario agregar otros campos.

    Normalmente los campos que utilizo como custom field son campos de texto, los cuáles funcionan perfectamente.

    El custom field se declara en un archivo de funciones o procesos, y luego es cargado en el formulario.

    Digamos que si deseo crear un campo personalizado lo realizo de la siguiente manera:

    En el archivo de procesos declaro primero el campo personalizado:
    $mp3 = csp_filter($_POST[‘mp3’]);
    add_post_meta($post_id, ‘mp3’, $mp3, true);
     
    Y luego en el formulario lo cargo de la siguiente manera:
    <input id=mp3 class=”adfields mp3″ value=”<?php echo $_POST[‘mp3’]; ?>” maxLength=”250″ size=”50″ name=”mp3″ />
    Eso utilizando un campo de texto, y en el single para mostrar el valor utilizo:
    <?php global $mp3; $mp3 = get_post_meta($post->ID, “mp3″, true); if (empty($mp3)) { ?>
    <?php } else { ?>
    <div class=”data”>
    <?php echo $mp3; ?>
    </div>
    <?php } ?>

    Lo cual me imprime los valores siempre y cuando se hayan ingresado, sin embargo el problema radica en que deseo utilizar otro tipo de campos como checkboxes donde el usuario seleccionará si cuenta o no con ese dispostivo, listas de selección donde se seleccionarán algunos atributos y, botones de radio para seleccionar algo como si o no; como mencioné por que el diseño lo requiere; sin embargo he probado de todo y no he logrado dar con la solución, por lo que si fuera posible me gustaría que me den una mano con este problemita.

  • #65972

    Fliberty
    Participante

    Sigo buscando información al respecto, sin embargo quisiera actualizar o ir más allá y consultar a los que más saben, es posible el uso de metabox en el formulario indicado, ya que toda la información donde se habla del uso de checkboxes, listas de selección o botones de radio, son para uso en metabox, así que pensé si alguien sabe si puedo hacer que estos metabox no se muestren únicamente en la administración, si no cargarlos además dentro de este form.

    No se si me dejo entender, si es así, espero su respuesta y ayuda. Muchas gracias.

  • #65975

    LGrusin
    Miembro

    No sé si te he entendido bien…

    Si los formularios son diferentes porque amplías los Custom fields, crea el formulario completo pero ocultando ciertos custom fields mediante condiciones según se trate.

    Un saludo

  • #65978

    Fliberty
    Participante

    Que tal LGrusin a los tiempos que nos volvemos a encontrar por estos lares.

    En eso de mostrar los diferentes campos de acuerdo a la página, no hay problema, para hacerme entender voy a explicar lo que deseo lograr.
    El formulario actualmente funciona con campos de texto cuyo value es:

    (?php echo $_POST[‘$key’]; ?)

    Sin embargo hay algunas opciones que requieren el uso de otro tipo de campos, es decir no sólo campos de texto, si no, checkboxes, botones de radio y listas de selección.

    Por ejemplo:

    El usuario deberá seleccionar de una lista de selección el sistema de transmisión de su vehículo, ya sea, manual, secuencial, etc.
    El usuario deberá seleccionar de una lista de selección o marcar en botones de radio de acuerdo a SI es o NO el único dueño del vehículo.
    El usuario deberá marcar en un grupo de checkboxes los diferentes accesorios o dispositivos con los que cuenta su vehículo; es decir si el vehículo tiene GPS, Luces de Xenon, Asientos Rebatibles, etc., el usuario marcará dichas opciones.

    Bueno en como mencioné en el uso de campos de texto no hay problema, el problema radica el utilizar otros tipos de campos.

    He llegado a la conclusión después de buscar varios días, que esta clase de campos sólo se pueden mostrar en metaboxes (no hay información para custom fields), he probado varias alternativas para usar los custom fields ya creados, sin embargo estos no guardan la información al seleccionar o marcar las opciones.

    Ahora al crear metaboxes por lo general se muestran en el formulario de publicación en a administración, ahora como haría para que estos bloques de metaboxes se muestren además en el formulario que vengo creando.

    Si no encuentro solución al uso de estos campos en el formulario de publicación, tendré que utilizar campos de texto para todas las opciones, lo cual haría mucho más extenso el formulario por el espacio que ocupan estos.

  • #65982

    LGrusin
    Miembro
  • #65983

    Fliberty
    Participante

    He preferido hacer todo directamente en el theme para facilitarle el trabajo a los usuarios, ya que el theme lo distribuyo de manera gratuita: http://www.pachakamaq.com/classifieds-wordpress-theme

    Y ahora estoy modificándolo para sacar una segunda versión.  Si utilizara un plugin para hacer los custom fields, cómo los integraría para usarlos en el theme. Ya que son como 50 opciones para seleccionar dependiendo del tipo de artículo que el usuario deberá elegir.

    La publicación de artículos está dividido en tres formularios: inmuebles, vehículos, y otros. Es en los dos primeros donde se requieren integrar estas diferentes opciones seleccionables, por ejemplo en el primero digamos que el usuario tendría que seleccionar un número de habitaciones de su departamento donde por defecto estaría especificado: 1, 2, 3, 4 o más.

    Esto es lo único por lo que por el momento me tiene estancado.

    PD. No deseas apoyar en el desarrollo.

  • #65993

    Fliberty
    Participante

    En wp-tuts encontré un tutorial que habla sobre el uso de metaboxes en un formulario de publicación desde el frontend: http://wp.tutsplus.com/tutorials/creative-coding/posting-via-the-front-end-advanced-submission/

    He estado analizándolo, pero no he podido hacerlo funcionar con checkboxes, listas de selección y botones de radio, espero me puedas ayudar LGrusin.

    Muchas gracias.

  • #66057

    Fliberty
    Participante

    Hola, necesito ayuda, he logrado hacer funcionar un primer metabox con checboxes, pero posteriormente al momento de crear más metaboxes, dejaron de guardar los datos.

    Aquí están todas las funciones que estoy utilizando: http://pastebin.com/XfZNeBZT

    Bien el chiste es que por ejemplo esta función crea el metabox con titulo “Exterior”, así como este quiero crear otros metaboxes con: Confort, Seguridad y Sonido.

    Estaba copiando y pegando la función, y cambiando unicamente el name con el prefijo del metabox; por ejemplo si en esta función se llama ext_custom_meta, para el de confort le llamada: conf_custom_meta; no se si me entienden.

    Pienso que estoy haciendo mal, estoy buscando info y no la encuentro, espero me puedan ayudar.

    Muchas gracias.

  • #66059

    LGrusin
    Miembro

    Imagino que el código después de tanto metabox habrá crecido de manera que es dificil de depurar. Deberías probar con formularios pequeños y una vez lo tengas claro entonces ampliar el definitivo.

    No te puedo ayudar más…

    Un saludo

  • #66062

    Fliberty
    Participante

    Que tal LGrusin, tienes razón en eso, al inicio he creado únicamente un metabox con 4 campos para hacer la prueba de funcionamiento, tanto para la publicación desde el frontend como de la administración; así como también programar la salida en la entrada.

    Posteriormente a ello he tenido que ir creando otros campos, estuve intentanto hacer un metabox múltiple, sin embargo todos los tutos que encontré parece que está desfasados ya que ninguno de ellos me funcionó.

    Estuve más de medio día buscando la solución al problema y nada, y al final de la noche luego de las 10PM, comenté la funciones para la validación de error de los campos requeridos para no estar llenando todos, comenté las funciones que almacenaban los datos del metabox, dejando uno solo activo, comenté el código del formulario con campos que no iba a utilizar y haciendo esto, los campos funcionaron correctamente.

    Ahora lo último que queda por descomentar son las funciones para validar el formulario. Pienso que esto es lo que me está haciendo algún conflicto, así que voy a ver otras opciones.

    Ya obteniendo resultados con checkboxes, voy a seguir con las listas de selección y botones de radio.

    Por cierto el tutorial de wptuts, resulto muy útil, pero como sólo está aplicado al uso en campos de texto, en mi caso resultó además incompleto, así que la función final es la mescolanza de varias guías y funciones encontradas en la red.

    Si alguien necesita algo parecido, el código publicado líneas arriba que se encuentra en pastebin, funciona correctamente.

  • #66110

    LGrusin
    Miembro

    Gracias por el código, no había visto tu respuesta.

    Un saludo

  • #66112

    Fliberty
    Participante

    Ahora me falta intentar utilizar las listas de selección y botones de radio. Me falta tiempo así que aún no he avanzado más.

  • #66264

    Fliberty
    Participante

    Hola que tal, espero que me leas LGrusin, pues sucede algo curioso.

    Acabo de retomar la programación del theme, ya que estaba programando el theme para un cliente.

    La vez pasada estaba comentando que los campos con checkbox no guardaban la información, y bueno empezaron a guardar cuando comenté la función para validación de contenido; es decir validar si el usuario ha llenado o seleccionado los campos como obligatorios.

    Comentando esta función los campos con checkbox guardan la información, pero una vez lo descomente, dejan de guardar la información, lo cual es extraño.

    Quisiera saber si me puedes dar una mano; la función para validar es esta:

     if ($post_title == “” || $post_cat == “” || $post_tags == “” || $name == “” || $location == “” || $provincia == “” || $ciudad == “” || $marca == “” || $modelo == “” || $kilometros == “” || $year == “”) {
      $err .= __(‘Por favor llene los campos marcados como obligatorios *’) . “<br />”;
     }

    Cabe mencionar que he separado por variables y nada.  Espero me ayudes a solucionar esto, todos los campos como $provincia, $ciudad, etc… son campos de texto.

  • #67729

    Fliberty
    Participante

    Aún no encuentro solución al problema, por favor me gustaría que me ayuden. Muchas gracias.

  • #68629

    jcglp
    Participante

    Hola, yo también me he encontrado con el mismo problema y tras buscar durante un buen rato y ver diferentes soluciones, al final he usado la que ví en este enlace, por si te sirve de ayuda.

    http://wordpress.stackexchange.com/questions/1705/validating-custom-meta-box-values-required-fields

     

    Suerte

     

    Un saludo.

El foro ‘Programación’ está cerrado y no se permiten nuevos debates ni respuestas.

Centro de preferencias de privacidad

Cookies imprescindibles

Se usan para saber si ya aceptaste nuestras políticas, si ya estás suscrito a nuestra newsletter, para reconocer el estado de tu sesión si la tuvieses y para servir más rápidos los contenidos.

No se captura IPs ni siquiera para el servicio de Analytics así que tu visita es privada.

JSESSIONID, _cfuid, wpSGCachePypass, mailerlite, gdpr, gawp
mailerlite, _cfuid

Cookies de terceros

Usamos cookies de terceros con servicios, también garantes de tu privacidad, que analizan tus usos de navegación para que podamos mejorar los contenidos, si ya estás suscrito al boletín y los elementos compartidos en redes sociales y el formulario de comentarios.

1P_JAR, APISID, CONSENT, HPSID, NID, SAPISID, SID, SIDCC, SSID, disqus_unique, disqusauth
disqus_unique, disqusauth
1P_JAR, APISID, CONSENT, HPSID, NID, SAPISID, SID, SIDCC, SSID

Pin It on Pinterest