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