Depuis la version 2.7 de WordPress, il est possible de « mettre en avant un article » en cochant la case du même libellé dans l’espace de rédaction d’un article (Publier > Visibilité). Si l’on coche cette case, l’article apparaitra automatiquement en premier sur la page d’accueil.

Activation d'un Sticky Post dans l'administration
L’option sticky_posts
Pour sauvegarder les articles mis en avant, WordPress insère leur ID dans l’option nommée sticky_posts. Ensuite, on récupère la liste des ID des articles mis en avant sous forme de tableau comme ci-dessous :
$sticky = get_option('sticky_posts');
Récupérer que les articles mis en avant
Cette option est excellente pour mettre en place un système de carrousel de façon simple et intuitive sur votre site. En effet, il suffit de cocher la case « Mettre cet article en avant sur la page d’accueil » pour qu’un article soit insérer dans la loop configurée pour le carrousel.
Le code ci-dessous permet de configurer une loop qui récupère que les articles mis en avant :
$sticky = get_option('sticky_posts');
$args = array( 'post__in' => $sticky );
query_posts( $args );
Si aucun article n’est mis en avant, alors c’est la liste des derniers articles qui sera affichée.
Ne pas récupérer les articles mis en avant
A l’inverse, on peut avoir besoin d’afficher une liste d’articles qui contient aucun Sticky Posts. Pour cela, le code ci-dessous permet d’exclure de la loop tous les articles mis en avant :
$sticky = get_option('sticky_posts');
$args = array( 'post__not_in' => $sticky);
query_posts( $args );
Ignorer la mise en avant des Sticky Posts dans la loop
Par défaut, WordPress décide d’afficher en premier les Sticky Posts puis le reste des articles, mais ce n’est pas forcément le comportement que l’on souhaiterai à chaque fois.
Par exemple, on décide de se servir des Sticky Posts pour mettre en valeur certains articles avec du CSS. Dans ce cas précis, on ne voudrait pas subir le changement automatique de position dans la loop.
Pour cela, lors de la configuration de la loop, il faut utiliser la clé ignore_sticky_posts comme ci-dessous :
query_posts( array('ignore_sticky_posts' => 1) );
Sticky Posts pour les Custom Post Types
Par défaut, les Sticky Posts sont disponibles pour les articles, mais pas pour les Custom Post Types. Ils nécessitent l’utilisation de l’extension Sticky Custom Post Types pour bénéficier de cette fonctionnalité. Pour plus d’informations au sujet de l’extension : http://wordpress.org/extend/plugins/sticky-custom-post-types/
Une fois activé, le plugin ajoutera l’encart « Sticky » au Custom Post Type de votre choix.

Option des Sticky Posts pour les Custom Post Types
Vérifier si un article est un Sticky Post
Parmi la liste des Conditionals Tags de WordPress, il existe is_sticky() qui permet de vérifier si on a coché « Mettre cet article en avant sur la page d’accueil » dans l’espace de rédaction d’un article.
A savoir que cette fonction s’utilise aussi bien à l’intérieur qu’à l’extérieur de la loop WordPress.
Styliser les Sticky Posts
Afin de cibler les articles mis en avant avec du CSS, WordPress prévoit l’ajout de la class « sticky » via la fonction post_class() ou sticky_post(). La différence entre les deux est que post_class() ajoute d’autres class tandis que sticky_post() insère que la class « sticky ».
Voici un exemple d’utilisation avec la fonction sticky_post() :
<div <?php echo sticky_post(); ?>>
<h2><?php the_title(); ?></h2>
</div>
Mots-clés: modifier les sticky dans wordpress, stickys wordpress, mettre en avant wordpress 






Merci beaucoup pour l’article
Je vais voir comment je peux intégrer tout ca
un article riche d’information merci : )
Je connaissais la mise en avant d’articles mais pas les sticky posts. Cet article m’a permis de combler ce déficit.
Merci !
Merci Jonathan, le bout sur le « custom post types » me manquait.
Au plaisir de te rendre service pour des infos sur la gestion de projet à l’occasion !
M.
Bonjour,
Tout cela est bien intéressant et il va falloir que je teste, surtout le caroussel!
Je partage!
Excellent comme je le disais sur le site de Bruno précédemment (on va éviter de faire du duplicate content
)très instructif et très bien expliqué, comme d’hab’
Bien vu Jonathan pour cet article, merci pour ton travail.
Bonjour,
J’ai lu sur le web pour mettre en avant il faut passer par sticky posts. Moi pour mon projet, j’ai un carousel, un slider, comment différencier les posts du carousel et ceux du slider, étant donné tous sont des sticky posts ?
Merci d’avance…