Mostrar el tipo de entrada personalizada actual

31 ene 2011, 00:18:10
Vistas: 50.1K
Votos: 4

Tengo una lista de todos mis tipos de entradas personalizadas juntos en formato blog. Lo que estoy tratando de hacer es mostrar el nombre del tipo de entrada en cada publicación.

Intenté esto:

get_post_type_object('post');
echo $obj->labels->singular_name;

Pero solo mostró "Post" para todo en lugar del nombre del tipo de entrada personalizada

0
Todas las respuestas a la pregunta 3
0
20

Si estás dentro de The Loop, prueba:

$post_type = get_post_type( $post->ID );
echo $post_type;

¿Funciona esto para ti?

31 ene 2011 00:44:44
1

Dentro del loop ya tienes disponible un objeto $post, no necesitas llamar a get_post_type ni a otras funciones, esto debería funcionar:

<?php echo $post->post_type; ?>

O si prefieres la idea de llamar a get_post_type, puedes facilitar el trabajo a la función pasándole el objeto post que ya tienes (así no tendrá que recuperar el post, solo extraer una propiedad de él).

<?php echo get_post_type( $post ); ?>

De lo contrario, get_post_type llamará innecesariamente a get_post para obtener el objeto post (un objeto que ya tienes disponible de todas formas).

Espero que esto ayude...

1 feb 2011 14:04:54
Comentarios

Una vez que se obtiene un post de la base de datos llamando a get_post() de nuevo no es un problema grave. Todo está almacenado en caché internamente durante la duración de la vista de página, el único sobrecosto es una llamada rápida a función para recuperar el objeto de la caché. En este caso get_post_type() realmente hace prácticamente nada más que devolver $post->post_type, por lo que tu optimización tiene sentido, pero probablemente debería tener un filtro o algo similar, en cuyo caso usar get_post_type() sería la forma API de proceder.

jerclarke jerclarke
21 sept 2012 22:20:25
1

Al leer la documentación en http://codex.wordpress.org/Function_Reference/get_post_type_object debes pasarle como argumento el tipo de post personalizado (custom post type).

Prueba con:

$obj = get_post_type_object('tu-tipo-de-post'); // Obtiene el objeto del tipo de post
echo $obj->labels->singular_name; // Muestra el nombre singular del tipo de post
31 ene 2011 00:49:40
Comentarios

falta la variable establecida $obj =

Leo Caseiro Leo Caseiro
21 jun 2016 16:14:00