Tengo un tipo de publicación personalizado llamado 'software', que contiene varios campos personalizados como subtítulos, precio, capturas de pantalla, enlace de descarga, etc. Creé una función para permitir el uso de la ventana de edición tinyMCE para algunos de estos campos personalizados. He estado tratando de mostrar estos campos en la página pero sin éxito.
El método que estoy usando es este:
<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>
Aquí hay un enlace a la página.
Debajo de <hr/>
en la página hay una lista de todos los meta creados. El ÚNICO de los campos que se mostrará es 'precio' por alguna extraña razón.
Alguien tiene alguna idea de lo que me estoy perdiendo?
get_post_meta()
función, y si lo está llamando dentro del bucle, debería funcionar ... A menos que no esté usando el nombre de campo personalizado correcto. A menudo vienen con un prefijo si se implementan a través de un complemento como meta-box. ¿Puedes publicar el código de cómo declaras tus campos personalizados? Una solución sería abrir la tabla wp_postmeta en PhpMyAdmin y buscar en la columnameta_key
LIKE% ...% y especificar "subtítulo" como valor de meta_key. Verá exactamente bajo qué nombre Wordpress está almacenando su campo personalizado.Respuestas:
Bueno, estás usando:
Entonces, le está diciendo a Wordpress que obtenga el metavalor del campo 'subtítulo' y que el valor devuelto esté en formato de cadena. Ver get_post_meta () docu .
Para obtener todos los metadatos de una publicación, debe usar la función get_post_custom () en su lugar. Por ejemplo, si estás dentro del bucle:
Esto devolverá todos los metadatos de la publicación. Si desea verificar, por ejemplo, el metacampo "precio":
fuente
$custom['price']
devuelve una matriz por lo que puede que tenga que hacer$custom['price'][0]
usa este código para resolver tu problema.
fuente