WordPress : Comment afficher les publications récentes sur la page d’accueil avec du code HTML personnalisé

Publié par Jean-Michel le

Je cherche à afficher le xnombre (indécis) de messages récents (pas plus de 10) sur ma page d’accueil. Pour chaque article, je souhaite afficher le titre et un extrait du contenu. Je peux créer moi-même une requête SQL pour l’obtenir, mais je me demandais quelle est la fonction WordPress pour l’obtenir. Le plus proche que j’ai obtenu est <?php wp_get_archives('type=postbypost&limit=10&format=html'); ?>. Je voudrais également personnaliser le format HTML. Un exemple de la sortie que je voudrais ressemble à ceci

<div id="posts">
    <section class="post">
        <h2><a href="[post uri]">[post title]</a></h2>
        <p>[post snippet]</p>
    </section>
    <section class="post">
        <h2><a href="[post uri]">[post title]</a></h2>
        <p>[post snippet]</p>
    </section>
</div>

Solution n°1 trouvée

<div id="posts">

<?php

    // define query arguments
    $args = array(
        'posts_per_page' => 8, // your 'x' goes here
        'nopaging' = true
        // possibly more arguments here
    );

    // set up new query
    $tyler_query = new WP_Query( $args );

    // loop through found posts
    while ( $tyler_query->have_posts() ) : $tyler_query->the_post();
        echo '<section class="post">'.
             '<h2><a href="'.
             get_permalink().
             '">'.
             get_the_title().
             '</a></h2><p>'.
             get_the_excerpt().
             '</p></section>';
    endwhile;

    // reset post data
    wp_reset_postdata();

?>

</div>

Par défaut, un extrait fait 55 mots. Pour une longueur d’extrait personnalisée, déposez ce qui suit dans functions.php de votre thème :

function tyler_excerpt_length( $length ) {
    return 70; // change number of words to your liking
}
add_filter( 'excerpt_length', 'tyler_excerpt_length' );

Si vous n’êtes pas satisfait du lien par défaut « Continuer la lecture » à la fin de l’extrait, déposez-le dans functions.php :

function tyler_excerpt_more( $more ) {
    return 'Read the whole post &gt;&gt;'; // again, change to your liking
}
add_filter( 'excerpt_more', 'tyler_excerpt_more' );

Si, puisque vous avez le lien de publication dans le titre, vous voulez que le lien « plus » de l’extrait ne s’affiche pas, faites en sorte que la fonction ci-dessus renvoie une chaîne vide, c’est-à-dire return '';.

Lecture complémentaire :

  • Classe WP_Query
  • get_permalink
  • obtenir_le_titre
  • Extraits
  • obtenir_l’extrait

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *