Estado de la publicación


Las entradas en WordPress pueden tener uno de varios estados. El estado de una entrada determinada determina cómo WordPress gestiona esa entrada. Por ejemplo, a las entradas públicas visibles para todos se les asigna el estado publish, mientras que a los borradores se les asigna el estado draft. El estado se almacena en el campo post_status de la tabla wp_posts.

WordPress proporciona 8 estados integrados que puedes utilizar. WordPress 3.0 te dio la posibilidad de añadir tu propio estado de entrada personalizado y utilizarlo de distintas formas.

Flujo de trabajo

WordPress proporciona funciones integradas que permiten a algunos usuarios (según sus roles y capacidades) revisar el contenido enviado al sitio web antes de que se publique. Esto se denomina comúnmente “flujo de trabajo”. Las funciones de flujo de trabajo de WordPress dependen del valor del campo post_status de una entrada para saber en qué paso del proceso de flujo de trabajo se encuentra actualmente la entrada.

La mayoría de los usuarios ya están familiarizados con al menos dos estados del flujo de trabajo:

  • A las entradas que están publicadas y visibles para todos (incluidos los usuarios que han cerrado sesión) se les asigna el estado publish.
  • A los borradores que aún no se han publicado se les asigna el estado draft.

Internamente, WordPress establece el estado de la entrada en publish cuando haces clic en el botón “Publicar”, y WordPress establece el estado de la entrada en draft cuando haces clic en el botón “Guardar borrador”. Del mismo modo, si tu sitio web tiene usuarios con la capacidad edit_posts, pero no con la capacidad publish_posts, cuando esos usuarios comiencen a escribir una nueva entrada, WordPress mostrará un botón “Enviar para revisión” en lugar de un botón “Publicar”. Del mismo modo, WordPress asigna a la entrada creada por ese usuario el estado pending cuando pulsa ese botón.

El estado de una entrada también se puede establecer en la pantalla de administración y en la pantalla Añadir nuevas entradas por cualquier usuario que tenga la capacidad necesaria para asignar la entrada al estado indicado. Internamente, todas estas entradas se almacenan en el mismo lugar (la tabla wp_posts) y se diferencian mediante una columna llamada post_status.

Estados predeterminados

Hay 8 estados principales de entradas que WordPress utiliza de forma predeterminada.

Publicada

Visible para todos. (publish)

Futura

Programada para publicarse en una fecha futura. (future)

Borrador

Entrada incompleta visible para cualquier persona con el rol de usuario adecuado. (draft)

Pendiente

A la espera de que un usuario con la capacidad publish_posts (normalmente un usuario con el rol Editor) la publique. (pending)

Privada

Visible únicamente para usuarios de WordPress con nivel de administrador. (private)

Papelera

A las entradas de la papelera se les asigna el estado trash. (trash)

Borrador automático

Revisiones que WordPress guarda automáticamente mientras editas. (auto-draft)

Heredada

Se utiliza con una entrada secundaria (como archivos adjuntos y revisiones) para determinar el estado real a partir de la entrada principal. (inherit)

Estado personalizado

AVISO:

Esta función NO añade el estado de entrada registrado a la pantalla de administración. Esta funcionalidad está pendiente de desarrollo futuro. Consulta el ticket n.º 12706 de Trac.

Considera el hook de acción post_submitbox_misc_actions para añadir este parámetro.

Un estado personalizado es un estado de entrada que tú defines.

Añadir un estado personalizado a WordPress se hace mediante la función register_post_status(). Esta función te permite definir el estado de la entrada y cómo funciona dentro de WordPress.

Este es un ejemplo básico de cómo añadir un estado de entrada personalizado llamado “No leído”:

function custom_post_status(){
	register_post_status( 'unread', array(
		'label'                     => _x( 'No leído', 'post' ),
		'public'                    => true,
		'exclude_from_search'       => false,
		'show_in_admin_all_list'    => true,
		'show_in_admin_status_list' => true,
		'label_count'               => _n_noop( 'No leído (%s)', 'No leídos (%s)' ),
	) );
}
add_action( 'init', 'custom_post_status' );

Recursos

Relacionado

Documentación del código

  • Función: get_post_status() – Recupera el estado de la entrada según el ID de la entrada.