État des publications

Dans WordPress, les publications peuvent avoir un certain nombre d’états. L’état d’une publication donnée détermine la façon dont WordPress gère cette publication. Par exemple, les articles accessibles publiquement à tout le monde ont l’état « Publié », alors que les articles qui n’ont pas encore été mis en ligne ont l’état « Brouillon ». L’état est stocké dans le champ post_status de la table wp_posts au sein de la base de données du site.

WordPress propose nativement 8 états différents. Depuis la version 3.0 de WordPress, il est possible d’ajouter des états personnalisés et de les utiliser de diverses façons.

Processus de mise en ligne

WordPress fournit des fonctionnalités natives permettant de donner la possibilité à certains utilisateurs (suivant leur rôle et leurs permissions) de réviser les publications soumises à la relecture sur le site avant de les mettre en ligne. C’est un processus de mise en ligne proposé nativement par WordPress. Ce processus de mise en ligne se base sur le champ post_status des publications pour connaître l’état actuel de chaque publication du site.

La plupart des utilisateurs et des utilisatrices sont familiers avec au moins deux états compris dans ce processus de mise en ligne :

  • Les publications qui ont été mises en ligne et qui sont visibles par tout le monde (y compris pour les gens qui ne sont pas connectés en tant qu’administrateur du site) ont l’état « Publié », soit publish dans la base de données.
  • Les publications enregistrées comme des brouillons ont l’état « Brouillon », soit draft dans la base de données.

Sous le capot, WordPress met vos publications dans l’état publish lorsque vous cliquez sur le bouton « Publier », et dans l’état draft lorsque vous cliquez sur le bouton « Enregistrer en brouillon ». De la même façon, si vos utilisateurs disposent de la permission edit_posts mais pas de la permission publish_posts, alors WordPress ne leur permettra que de « Soumettre à la relecture » leur travail. Dans ce cas-là, WordPress assignera à cette publication l’état « En attente de relecture », ce qui équivaut à pending dans la base de données.

L’état d’une publication peut aussi être mis en place dans l’écran d’administration et lorsque vous rédigez une nouvelle publication, dans la mesure où l’utilisateur dispose des permissions suffisantes. Sous le capot, toutes ces publications sont enregistrées au même endroit (dans la table wp_posts) et sont simplement différenciées par le champs posts_status.

États natifs par défaut

Il y a 8 états principaux utilisés par WordPress nativement.

Publié

publish

Visible par tout le monde.

Planifié

future

Planifié pour être mis en ligne à une date donnée.

Brouillon

draft

Publication non terminée, et visualisable uniquement par les utilisateurs ayant un rôle qui le leur permet.

En attente de relecture

pending

Publication en attente de mise en ligne par un utilisateur ayant au minimum le rôle « éditeur ».

Privé

private

Visible uniquement par les utilisateurs ayant le rôle « Administrateur ».

Corbeille

trash

Publications ayant été placées dans la corbeille.

Brouillon automatique

auto-draft

Il s’agit de l’état utilisé par les révisions enregistrées automatiquement par WordPress au fur et à mesure que vous rédigez vos publications.

Hérité

inherit

Utilisé par les publications enfants (comme les fichiers joints ou les révisions) pour déterminer l’état courant à partir de la publication parente.

État personnalisé

Avertissement : cette fonctionnalité n’ajoute pas automatiquement vos nouveaux états sur l’écran d’administration. Cela sera peut être le cas un jour, mais pas pour l’instant. Référez-vous au ticket Trac #12706. Utilisez le crochet d’action post_submitbox_misc_actions pour ajouter ce paramètre.

Un état personnalisé est un état créé par vous-mêmes ou par une extension que vous utilisez.

Cela est fait en utilisant la fonction register_post_status(). Cette fonction vous permet de définir un état personnalisé et de le faire fonctionner dans WordPress.

Voici un exemple basique montrant comment créer un nouvel état « Non lu ».

function wporg_custom_post_status(){
	register_post_status( 'unread', array(
		'label'                     => _x( 'Unread', 'post', 'textdomain' ),
		'public'                    => true,
		'exclude_from_search'       => false,
		'show_in_admin_all_list'    => true,
		'show_in_admin_status_list' => true,
		'label_count'               => _n_noop( 'Unread (%s)', 'Unread (%s)', 'textdomain' ),
	) );
}
add_action( 'init', 'wporg_custom_post_status' );

Ressources

Articles liés

Documentation technique

  • Fonction : get_post_status() – retrouve l’état d’une publication à partir de son identifiant.

Traduit par Jb Audras
Relu par Sébastien Serre & Jenny Dupuy
Dernière mise à jour le 22 mars 2020