Cómo obtener valores de meta box - Tutorial WP tuts

2 mar 2012, 10:42:31
Vistas: 36K
Votos: 2

Realicé estos tres tutoriales para crear metaboxes personalizados.

  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-1-intro-and-basic-fields/
  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-2-advanced-fields/
  • wp.tutsplus.com/tutorials/reusable-custom-meta-boxes-part-3-extra-fields/

pero no sé cómo llamar a los valores de campos individuales. Usé este script PHP

$meta = get_post_meta($post->ID, $field['id'], true);
echo $meta;

pero no funciona. ¿Alguien sabe qué estoy haciendo mal?

aquí está mi functions.php http://www.4shared.com/file/8jmKqGFY/functions.html?

y aquí está mi index.php http://www.4shared.com/file/iAWwZim7/index.html?

6
Comentarios

reemplaza $field['id'] con el ID real que le diste al campo

Bainternet Bainternet
2 mar 2012 12:06:32

Hice esto, pero no muestra nada

Itachi Itachi
2 mar 2012 12:12:29

¿Puedes mostrarnos tu código completo del bucle?

Alex Older Alex Older
2 mar 2012 12:56:41

aquí está mi functions.php http://www.4shared.com/file/8jmKqGFY/functions.html?

y aquí está mi index.php

http://www.4shared.com/file/iAWwZim7/index.html?

Itachi Itachi
4 mar 2012 17:08:29

¿Estás seguro de que tienes la meta key correcta? Prueba con print_r( get_post_custom_keys($post_id) ); y verás todas las meta keys asociadas a ese post. (Para compartir código, te sugiero usar algo como Pastie)

Cristian Cristian
7 mar 2012 10:59:02

Por favor pega tu código directamente en tu pregunta -- al menos las partes relevantes.

chrisguitarguy chrisguitarguy
13 abr 2012 05:06:13
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 2
3

Después de revisar tu código hay un par de cosas que necesitas cambiar dependiendo de dónde se encuentre el contenido meta.

Si pruebas

$meta = get_post_meta( get_the_ID(), 'custom_text', TRUE );
echo 'El contenido meta es: ' . $meta;`

Eso debería darte el meta apropiado.

Estás llamando a esta función en el contenido de la página, así que a menos que el contenido meta se encuentre allí, no se mostrará nada.

¡Espero que ayude!

7 mar 2012 11:07:34
Comentarios

no, no funciona pero ya lo resolví :) La solución es esta

$meta = get_post_meta($post->ID, $field['custom_text'], true); echo $meta[custom_text][0];

Gracias por tu ayuda

Itachi Itachi
10 mar 2012 23:05:52

No olvides aceptar la respuesta para que en el futuro otras personas sepan cómo llegar a la solución que encontraste. Además, es educado.

Joshua Joshua
21 may 2012 05:52:46

Por favor publica tu comentario como una respuesta. ¡Me ayudó mucho!

Cedric Ipkiss Cedric Ipkiss
9 dic 2017 14:41:40
0

Si no estás en un archivo de plantilla donde no puedas usar get_the_ID() (por ejemplo, estás en un archivo de plugin), primero obtén un puntero al objeto de la publicación asociado con el contenido meta y luego usa $post->ID.

Por ejemplo, si usaste add_meta_box para definir una función que muestra el meta box (digamos display_meta_box), puedes recuperar el valor del meta box así:

function display_meta_box( $post ) {
  $meta = get_post_meta($post->ID, "meta_key", true); 
  echo "<input name='x' value='$meta' />";
}
9 dic 2017 14:53:19