Mostrar Campos de un Tipo de Entrada Personalizado (Custom Post Type)

22 dic 2016, 11:55:01
Vistas: 16.6K
Votos: 3

Estoy haciendo un sitio web y quiero mostrar Eventos. Por eso creé un Tipo de Entrada Personalizado llamado 'event'.

Estoy consultando los eventos para mostrarlos en una página. Los Eventos que creé también tienen algunos campos personalizados como: 'Ubicación', 'Día', 'Mes', 'Año' y una categoría.

Este es mi código actual:

<?php
    $args = array(
      'post_type' => 'event', 
    );

    $events = new WP_Query( $args );

    if( $events->have_posts() ) {
      while( $events->have_posts() ) {
        $events->the_post();

        ?>
          <div class='event'>
              <div class="event-date">

              </div>
              <div class="event-content">
                    <div class="event-title"><?php the_title() ?></div>
                    <div class="event-info">
                        <span>Ubicación: </span>
                        <span>Categoría: </span>
                    </div>
              </div>
          </div>
        <?php
      }
    } else {
      echo '¡No hay eventos!';
    }
  ?>

Que solo me muestra el título. ¿Cómo puedo mostrar los campos personalizados y la categoría?

Soy bastante nuevo en el desarrollo de WordPress, solía programar en .NET.

¡Gracias por cualquier ayuda!

0
Todas las respuestas a la pregunta 1
8

Los campos personalizados se guardan en la tabla post_meta. En tu consulta obtuviste el título del post y el ID del post, así que ahora tienes que obtener el meta del post.

Usa:

<?php
get_post_meta( get_the_ID(), '_location', true );
?>

Lo mismo para el resto de tus campos personalizados, solo '_location' cambiará según el campo que estés obteniendo. Lee más sobre post meta aquí

22 dic 2016 12:02:47
Comentarios

Probaré esta función. ¿Qué tal si uso get_post_custom()?

Nanou Ponette Nanou Ponette
22 dic 2016 12:05:44

también puedes usar esta función, tienes ambas opciones

fmeaddons fmeaddons
22 dic 2016 12:07:49

¡Gracias! Ambas parecen funcionar pero tengo problemas para leer el valor exacto del array.

Nanou Ponette Nanou Ponette
22 dic 2016 12:11:02

Creo que debes usar get_post_meta() para obtener el valor exacto del campo personalizado. Esto reducirá tu trabajo de obtener el valor del array cuando usas get_post_custom().

fmeaddons fmeaddons
22 dic 2016 12:13:44

Sí, exacto. Pero este var_dump($day); me devuelve string(1) "4" y <?php $day ?> no devuelve nada. Me estoy perdiendo algo aquí.. Lo siento, todavía soy principiante.

Nanou Ponette Nanou Ponette
22 dic 2016 12:16:46

Prueba con <?php echo $day; ?>, ¿obtienes algo entonces?

fmeaddons fmeaddons
22 dic 2016 12:18:35

Continuemos esta discusión en el chat.

fmeaddons fmeaddons
22 dic 2016 12:25:35

¡Esto funciona! Gracias

Nanou Ponette Nanou Ponette
22 dic 2016 12:26:25
Mostrar los 3 comentarios restantes