Cómo obtener datos de meta box para mostrar en una página

5 mar 2013, 12:43:52
Vistas: 36K
Votos: 3

Estoy intentando crear un Metabox con 3 campos de editor de texto para un tipo de entrada personalizada.

El box aparece y parece estar guardando en las entradas del tipo de entrada personalizada, pero no puedo hacer que los datos se muestren en la página single-[custom-post-type].php.

Recientemente he intentado lo siguiente para mostrar los datos del meta box en la página:

global $post;
$meta = get_post_meta($post->ID, 'my-info', true ); 
if ($meta != '') {
    echo $meta
} else { 
    echo "No se puede mostrar el contenido";
}

No estoy seguro si es un problema con mi creación/guardado del Metabox que no me permite mostrarlo. Si alguien puede orientarme en la dirección correcta, lo agradecería.

Aquí hay un enlace al código que estoy usando para mi Metabox si ayuda:

Código del Metabox

1
Comentarios

¿Algún avance en esa pregunta?

kaiser kaiser
22 oct 2013 13:30:19
Todas las respuestas a la pregunta 4
0

Para mostrar los metadatos del tipo de publicación en una plantilla de página única, asumo que estás dentro del Loop.

// Usa get_the_ID() para obtener el ID mediante la función de la API
echo get_post_meta( get_the_ID(), 'mi-informacion', true );
// También puedes llamarlo desde el global, ya que la consulta se refiere a la página única actual
echo get_post_meta( $GLOBALS['post']->ID, 'mi-informacion', true );

Si no obtienes ningún resultado, entonces podrías verificar tu conjunto completo de datos personalizados de la publicación:

printf( '<pre>%s</pre>', var_export( get_post_custom( get_the_ID() ), true ) );
5 mar 2013 12:57:26
0

Utiliza los IDs de los campos para obtener los metadatos de los campos respectivos como se muestra en el siguiente código.

global $post;
$meta = get_post_meta($post->ID,'myinfo-box1', true); // Usa myinfo-box1, myinfo-box2, myinfo-box3 para los campos respectivos
if ($meta != '') {
    echo $meta;
} else { 
    echo "No se puede mostrar el contenido";
} 
5 mar 2013 13:08:17
1
$m_meta_description = get_post_meta($post->ID, 'images_url',true);

echo 'valor del meta box: ' . $m_meta_description;
24 ene 2018 07:20:02
Comentarios

¿Podrías explicar por qué esto resolverá el problema?

Krzysiek Dróżdż Krzysiek Dróżdż
5 dic 2018 09:48:43
1
-2

A veces el id no funciona, entonces podemos usar el atributo name.

Para mostrar los valores del meta box, tu código debe estar dentro del loop.

$meta = get_post_meta($post->ID,'meta-box-text', true);

Aquí meta-box-text es el atributo name de mi campo de texto input.

Funciona perfectamente para mí.

16 jun 2018 08:24:10
Comentarios

¿Por qué? ¿Por qué crees que tiene que estar dentro del loop? El primer parámetro de esta función es post_id, por lo que PUEDES usarla en cualquier lugar, no solo dentro del loop. Lo siento, pero tu respuesta es incorrecta.

Krzysiek Dróżdż Krzysiek Dróżdż
16 jun 2018 11:31:24