Tutoriels WordPress de confiance, quand vous en avez le plus besoin.
Guide du débutant pour WordPress
WPB Cup
25 millions+
Sites web utilisant nos plugins
16+
Années d'expérience WordPress
3000+
Tutoriels WordPress par des experts

How to Display the Latest Sticky Posts in WordPress

WordPress dispose d'une fonctionnalité très intéressante appelée articles épinglés. Considérez les articles épinglés comme des articles mis en avant pour votre blog. Lorsque vous marquez un article comme épinglé, il s'affiche au-dessus de vos nouveaux articles, mais seulement si votre thème le permet. Dans ce tutoriel, nous vous montrerons comment afficher les derniers articles épinglés dans WordPress.

Démonstration des derniers articles à la une

Remarque : Ceci est un tutoriel de niveau intermédiaire et nécessite des connaissances de base en HTML / CSS + des connaissances sur les thèmes WordPress.

Tutoriel vidéo

S'abonner à WPBeginner

Si la vidéo ne vous plaît pas ou si vous avez besoin d'instructions supplémentaires, continuez à lire.

La première chose à faire est de copier-coller cet extrait de code dans le fichier functions.php de votre thème ou dans un plugin spécifique au site.

function wpb_latest_sticky() { 

/* Get all sticky posts */
$sticky = get_option( 'sticky_posts' );

/* Sort the stickies with the newest ones at the top */
rsort( $sticky );

/* Get the 5 newest stickies (change 5 for a different number) */
$sticky = array_slice( $sticky, 0, 5 );

/* Query sticky posts */
$the_query = new WP_Query( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) );
// The Loop
if ( $the_query->have_posts() ) {
	$return .= '<ul>';
	while ( $the_query->have_posts() ) {
		$the_query->the_post();
		$return .= '<li><a href="' .get_permalink(). '" title="'  . get_the_title() . '">' . get_the_title() . '</a><br />' . get_the_excerpt(). '</li>';
		
	}
	$return .= '</ul>';
	
} else {
	// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

return $return; 

} 
add_shortcode('latest_stickies', 'wpb_latest_sticky');

Le code ci-dessus interroge la base de données WordPress pour récupérer les 5 derniers articles épinglés. Il affiche ensuite le titre de chaque article épinglé avec un lien sous forme de liste. Nous avons regroupé tout cela dans une fonction et créé un shortcode.

Pour afficher vos derniers articles épinglés, vous pouvez utiliser le shortcode [latest_stickies] dans n'importe quel article, page, ou même un widget texte WordPress.

Si vous souhaitez utiliser des shortcodes dans un widget texte, vous devrez ajouter cette ligne de code supplémentaire dans le fichier functions.php de votre thème ou dans votre plugin spécifique au site.

add_filter('widget_text', 'do_shortcode');

Cet extrait et cette fonction peuvent très bien être utilisés dans un slider mis en avant, ou toute autre fonctionnalité avancée que vous souhaitez afficher sur votre site. Cet extrait est principalement destiné à un site WordPress qui a une page d'accueil personnalisée ou un look de style magazine.

C'est tout, nous espérons que cet article vous a aidé à afficher les derniers articles épinglés sur votre blog WordPress. Vous voudrez peut-être aussi consulter notre tutoriel sur la façon d'ajouter une date d'expiration aux articles épinglés dans WordPress.

Si cet article vous a plu, alors abonnez-vous à notre chaîne YouTube pour des tutoriels vidéo WordPress. Vous pouvez également nous trouver sur Twitter et Google+.

Avis : Notre contenu est financé par nos lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons percevoir une commission. Voir comment WPBeginner est financé, pourquoi c'est important et comment vous pouvez nous soutenir. Voici notre processus éditorial.

La boîte à outils WordPress ultime

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tout professionnel devrait posséder !

Interactions des lecteurs

8 CommentsLeave a Reply

  1. efforts très informatifs de votre part, ce code fonctionne parfaitement,
    J'ai une question, j'ai plusieurs catégories et sous-catégories, donc je veux juste faire un post épinglé pour chaque catégorie séparément, et affiché sur la page de liste des catégories où toutes les publications de cette catégorie spécifique sont listées, comme (catégorie Sports->un post épinglé – catégorie recettes de cuisine -> un post épinglé) etc.

  2. Merci de m'avoir mis sur la bonne voie !!
    Le code fonctionne très bien pour afficher le titre là où le shortcode est collé.

    Cependant, j'essayais de trouver une méthode pour afficher l'intégralité de l'article (tout le contenu, au lieu d'un simple titre ou même d'un extrait) sur une page spécifique.

    J'ai décidé de jouer avec votre code ci-dessus afin d'essayer d'y parvenir et j'ai finalement réussi…
    Bien que le titre s'affiche de la même taille que le texte du paragraphe, je suis sûr que je peux résoudre ce problème.

    Here’s what I changed…please let me know if you think there’s something I should reconsider lest the whole world explodes ;)

    J'ai simplement remplacé votre texte get_the_excerpt() par get_the_content() et cela a réussi à extraire l'intégralité de l'article de blog sur cette page.
    Afin de supprimer l'indentation en liste à puces, j'ai ensuite supprimé les balises " " " ", mais j'ai dû laisser les apostrophes en place, sinon la page ne se chargerait pas.
    Donc, en substance, là où il y avait " ou " avant, il n'y a maintenant que " et ainsi de suite.

    C'est tout ce que j'ai changé et cela fonctionne à merveille pour moi...
    J'ai remarqué 2 problèmes :
    1 : Parfois, il charge la majeure partie de la publication, mais pas toujours jusqu'à la fin, surtout si la publication est modifiée par la suite... quelqu'un a-t-il des suggestions pour éviter que cela ne se produise ?
    2 : J'aimerais que l'image mise en avant apparaisse également, cela en ferait la solution ultime et flexible ! Des idées à ce sujet ?

    Merci encore pour vos conseils !

    J'espère que ce que j'ai expliqué a du sens pour quiconque souhaite obtenir la même chose que moi.

  3. Bonjour

    Merci pour votre code. Cependant, j'essaie d'obtenir quelque chose et j'ai 2 problèmes.

    Je veux afficher un seul article épinglé sur ma page d'accueil et uniquement la vidéo YouTube présente dans le contenu.

    En fait, j'affiche le titre et tout le contenu d'une publication (y compris les textes, les images et les vidéos).
    Le deuxième problème est qu'il affiche YouTube comme un lien et n'intègre pas directement la vidéo sur ma page d'accueil.

    Merci pour votre aide

  4. Bonjour,

    J'ai essayé avec le code, cela fonctionne bien lorsqu'au moins 1 article est assigné comme article à la une, sinon, lorsque aucun article n'est assigné comme article à la une, il affichera les 5 derniers articles.

    Il en serait de même pour la condition d'affichage des articles à la une uniquement, s'il n'y a pas d'articles à la une assignés, alors rien ne devrait s'afficher.

    Merci d'avance

  5. ‘caller_get_posts’ a été remplacé par ‘ignore_sticky_posts’ depuis la v3.1, je pense donc qu'il est important de modifier votre code en conséquence.
    De plus, a) $post->ID n'est pas nécessaire dans cette instance de get_permalink() car vous avez configuré les données du post en appelant $the_query->the_post(), et si pour une raison quelconque vous souhaitez toujours inclure $post->ID, vous devriez le rendre global, c'est-à-dire global $post;

Laisser un commentaire

Merci d'avoir choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.