Explorá

Paso a paso / 10 min de lectura

Función get_post_type de WordPress: qué es y cómo utilizarla

PHP code

La función de WordPress get_post_type es una función incorporada que identifica uno de los aspectos fundamentales de las características de gestión de contenido de la plataforma: el tipo de contenido.

En este artículo, te explicaremos los tipos de contenido, cómo la función get_post_type de WordPress te ayuda a identificarlos y cómo podés usar esta función para realizar acciones selectivas en tipos de contenido específicos.

Aspectos Clave

  • Los tipos de contenido son las diferentes clases de contenido que gestiona WordPress.
  • get_post_type es una función incorporada en WordPress que identifica el tipo de un contenido específico o el contenido actual en el bucle de WordPress.
  • get_post_type te ayuda a aplicar estilos y elementos web o a realizar acciones únicamente cuando estás en tipos de contenido específicos.

¿Qué son los Tipos de Contenido en WordPress?

Dado que la función get_post_type se ocupa de los tipos de contenido, es esencial entender qué son los tipos de contenido en WordPress, especialmente si sos nuevo en la plataforma. Si ya estás familiarizado con los tipos de contenido, saltea a la sección “¿Qué es la Función get_post_type?”.

Un tipo de contenido es una clase específica de contenido dentro del CMS de WordPress. Originalmente, WordPress era mayormente una plataforma de blogs, por lo que cada pieza de contenido era simplemente una “entrada”. Sin embargo, a medida que WordPress amplió sus características de gestión de contenidos, surgieron nuevos tipos de contenido.

Los tipos de contenido expanden el alcance de WordPress más allá de los blogs, permitiendo a sitios de todo tipo publicar contenido significativo para su audiencia de una manera estructurada.

Tipos de Contenido Predeterminados y Personalizados

Los tipos de contenido pueden ser tipos de contenido predeterminados o tipos de contenido personalizados. Los siguientes son los tipos de contenido incluidos en tu instalación de WordPress por defecto, almacenados en tu base de datos bajo la tabla wp_posts.

Tipos de Contenido Predeterminados

  • Entradas. El tipo de contenido más comúnmente usado para blogging. Tu archivo de blog generalmente mostrará entradas en orden cronológico inverso (de la más nueva a la más antigua), resultando ideal para contenido que actualizás regularmente, como artículos de noticias.
  • Páginas. Las páginas muestran contenido “estático”. El contenido estático es aquel que no cambia con frecuencia. Ejemplos incluyen páginas informativas como “Acerca de Nosotros” y “Política de Privacidad”. Las páginas no se listan cronológicamente y no utilizan etiquetas o categorías como suelen hacer las entradas.
  • Adjuntos. Cualquier pieza de medios subidos a tu sitio. Esto incluye imágenes, videos, archivos de audio o documentos PDF.
  • Revisiones. Una revisión es una versión de un contenido específico. Cada vez que realizás cambios y los guardás en una entrada o página, WordPress crea automáticamente una revisión, permitiéndote ver y revertir a versiones anteriores de tu contenido.
  • Menús de Navegación (“Menús”). Los menús son listas de enlaces que ayudan a los usuarios a navegar tu sitio web más eficientemente. Este tipo de contenido te permite personalizar listas de enlaces a diversas páginas y entradas en tu sitio.
  • CSS Personalizado. Este tipo de contenido depende del tema. Cada vez que usás el Personalizador (Apariencia > Personalizar > CSS Adicional) para agregar estilos CSS personalizados, WordPress guarda estos cambios y los asocia con el tema que acabas de personalizar.
  • Conjuntos de Cambios. Los conjuntos de cambios son como revisiones para el Personalizador mencionado anteriormente. WordPress guarda cada cambio en un conjunto de cambios similar a un borrador.

Tipos de Contenido Personalizados

Además de usar los tipos de contenido predeterminados, también podés crear tus propios tipos de contenido con la función de tipos de contenido personalizados. Los tipos de contenido personalizados son excelentes para crear plantillas que no encajan en los tipos de contenido predeterminados y requieren una estructura personalizada. Ejemplos incluyen estudios de caso, portafolios, perfiles de miembros del equipo y páginas de eventos.

Podés crear tipos de contenido personalizados usando la función nativa register_post_type, pero recomendamos usar el plugin Advanced Custom Fields para facilitar el proceso y asegurar que los contenidos personalizados permanezcan después de cambiar de tema.

¿Qué es la función get_post_type de WordPress?

Ahora que hemos explorado los tipos de contenido, podés entender mejor qué hace la función get_post_type.

La función get_post_type recupera una cadena de texto con el tipo de contenido del contenido actual o de cualquier contenido específico que quieras. Consulta la base de datos de WordPress para determinar el tipo de un contenido dado.

get_post_type puede ser muy útil en múltiples escenarios, como aplicar diseños o estilos específicos basados en el tipo de contenido o mostrar diferentes barras laterales o campos personalizados para diferentes tipos de contenido.

¿Cómo funciona la función get_post_type de WordPress?

La sintaxis básica de la función get_post_type es:

get_post_type( $post = null );

El único parámetro es $post y es opcional.

El valor de $post puede ser una ID de contenido específica (un entero), un objeto WP_Post (objeto de contenido) o dejarse en blanco. En caso de que no se especifique un valor, automáticamente se establece en null y recupera la información del contenido actual en el bucle de WordPress.

Si el valor del parámetro es válido, devuelve el tipo de ese contenido. Si el valor no es válido, devuelve false, indicando que no se pudo determinar el tipo de contenido.

Desglosando la Función get_post_type de WordPress

Para una explicación más profunda, podemos encontrar la definición de get_post_type en el núcleo de WordPress. Más específicamente, se encuentra en el archivo post.php dentro de la carpeta wp-includes:

<?php
/**
 * Recupera el tipo de contenido del contenido actual o de un contenido dado.
 *
 * @since 2.1.0
 *
 * @param int|WP_Post|null $post Opcional. ID del contenido u objeto del contenido. Por defecto es el global $post.
 * @return string|false          Tipo de contenido al tener éxito, false al fallar.
 */
function get_post_type( $post = null ) {
$post = get_post( $post );
	if ( $post ) {
		return $post->post_type;
	}
	return false;
}
?>

Ya que la función es bastante corta, podemos desglosar qué hace cada línea de código.

La Primera Línea


function get_post_type( $post = null ) {

La primera línea declara la función get_post_type y su único parámetro, $post = null.

La Segunda Línea

$post = get_post( $post );

La segunda línea es donde comienza el cuerpo de la función. Intenta obtener el contenido usando $post = get_post( $post );. get_post es una función incorporada en WordPress que recupera un contenido basado en un ID de contenido específico o un objeto de contenido.

Si le pasás una ID de contenido (un entero), devuelve el objeto de contenido correspondiente, pero si le pasás un objeto de contenido, simplemente devuelve ese objeto. Finalmente, si le pasás null o ningún argumento, intenta recuperar el objeto de contenido global actual, que es el contenido actual en el bucle de WordPress.

Esta segunda línea asegura que la variable $post sea siempre un objeto de contenido. Independientemente de la entrada inicial, siempre devolverá un objeto de contenido. Esto es importante porque el resto de la función opera sobre un objeto de contenido.

Al asegurar que la variable $post es siempre un objeto de contenido (o null si el contenido no existe o no se especifica), la función siempre puede acceder de manera confiable a la propiedad post_type del objeto WP_Post más adelante.

La Tercera Línea

if ( $post ) {

Esta línea verifica si la variable $post es true o false. Si esta condición devuelve true, el contenido existe, y el programa pasa a la siguiente línea. Si devuelve false, significa que no se encontró contenido, ya sea porque no hay un contenido actual en el bucle o porque la ID del contenido proporcionada era inválida.

La Cuarta Línea

return $post->post_type;

Si la línea anterior encontró un contenido, esta línea accede a la propiedad post_type del objeto de contenido. Esta propiedad contiene el tipo de contenido (entrada, página, adjunto, etc.) y la función lo devuelve como una cadena de texto.

Las Últimas Líneas

    }
    return false;
}

La quinta línea cierra las llaves abiertas por la condición ( if ( $post ) { ).

return false; significa que la función devuelve un Boolean false si no se encuentra un contenido. Un false indica que no se pudo determinar el tipo de contenido. Esto puede suceder porque no hay un contenido actual en el bucle o el contenido especificado no existe.

Finalmente, la última línea ( } ) cierra la función.

¿Cómo Usar get_post_type en WordPress?

Ahora que sabés cómo funciona la función get_post_type en un nivel más profundo, es momento de usarla. El siguiente fragmento es un ejemplo simple de cómo usar la función para verificar el tipo del contenido actual y mostrar el mensaje “¡Esto es una entrada!” La idea es mostrar el mensaje únicamente si el tipo de contenido es una entrada. Recordá que entrada es el tipo de contenido para las publicaciones de blog.

Podés colocar el fragmento en el archivo single.php, que es el guion que WordPress usa para renderizar entradas individuales.

Acá está el código:

<?php
if (have_posts()) : while (have_posts()) : the_post();

// Obtener el tipo de contenido para el contenido actual
$post_type = get_post_type(); 
if ($post_type == 'post') {
echo "¡Esto es una entrada!";
}

// Resto del código que muestra el contenido de la entrada

endwhile; endif;
?>

En la primera línea de la lista, verificamos si hay contenidos para mostrar con if (have_posts(). Esta es una estructura de control estándar del bucle de WordPress.

Luego comenzamos el bucle con while (have_posts()). Si hay contenidos disponibles, la función itera a través de ellos. the_post() configura los datos del contenido, preparándolos para su recuperación y visualización.

En la segunda línea, $post_type = get_post_type(); llama a la función get_post_type para identificar el tipo de contenido del contenido actual en el bucle. Almacenamos el tipo de contenido recuperado en la variable $post_type.

La tercera línea comienza la verificación condicional para el tipo de contenido. if ($post_type == 'post') { verifica si el tipo de contenido del contenido actual es post. Si el tipo de contenido es realmente post, emite una declaración echo para mostrar el mensaje ¡Esto es una entrada!.

Finalmente, endwhile; endif; termina el bucle y la declaración if que comenzó el bucle.

Este es un ejemplo muy simple, pero te da una idea de cómo usar la función get_post_type en tu proyecto de desarrollo en WordPress.

Reflexiones Finales sobre la Función get_post_type

Los tipos de contenido son las diferentes clases de contenido que WordPress gestiona, incluyendo imágenes, entradas de blog y tipos personalizados que podés crear para satisfacer las necesidades de contenido de tu sitio web. La función get_post_type determina el tipo de un contenido dado en WordPress.

get_post_type puede ser muy útil para aplicar diseños o estilos específicos basados en el tipo de contenido o para realizar acciones específicas, como mostrar un mensaje para identificar el tipo de contenido actual. Con suerte, ahora comprendés mejor cómo funciona y cómo podés usarla en tus proyectos.

Si encontraste útil este artículo, leé nuestro blog para obtener más información y guías sobre WordPress.