Un communiqué important, une annonce de maintenance, une offre limitée dans le temps : certains contenus méritent de rester visibles en haut du blog même quand des articles plus récents sont publiés. C’est le rôle de cette option, accessible depuis la boîte « Publier » de l’éditeur, sans toucher au statut de publication lui-même.
Ce que WordPress modifie réellement
Techniquement, rien ne change dans la table wp_posts : l’identifiant de l’article est simplement ajouté à l’option sticky_posts, un tableau sérialisé stocké dans wp_options. C’est WP_Query qui, à l’affichage de la boucle principale, réordonne les résultats pour faire remonter ces identifiants en premier, sauf si le paramètre ignore_sticky_posts vaut true.
Deux fonctions permettent de piloter ce comportement en PHP : stick_post( $id ) et unstick_post( $id ). La fonction is_sticky( $id ) renvoie un booléen pratique pour afficher un badge dans un template.
Exemple
<?php
if ( is_sticky() ) {
echo '<span class="badge">À la une</span>';
}
À ne pas confondre avec
- Le statut « privé » ou « en attente » : un article épinglé reste public et suit son cycle de publication normal.
- Une page d’accueil statique définie dans Réglages > Lecture, qui relève d’un mécanisme totalement séparé.
- Un article « à la une » géré par un thème via une taxonomie personnalisée, souvent confondu à tort avec cette fonctionnalité native.
Bon à savoir : sur une requête personnalisée avec WP_Query, les articles épinglés ne remontent en tête que si vous n’avez pas explicitement précisé d’ordre de tri différent.