Lister les articles d’un auteur sous WordPress

Il y a quelques temps, dans les commentaires de l’article 8 plugins pour gérer votre webzine WordPress, me fut posée la question suivante :

Je suis à la recherche d’un plugin pour pouvoir afficher les articles d’un même auteur sur une page ou un article.

Je répondis que je n’utilisais pas un plugin à cet effet, mais une petite portion de code placée dans mon thème WordPress. Histoire d’être constructive, je partage aujourd’hui ce code, qui vous permettra de lister tous les articles d’un auteur sur votre site.

Pour commencer, dans le fichier functions.php de votre thème, insérez le code qui suit :

/* Query page auteur */
function my_post_queries( $query ) {
    // vérifier qu'on n'est pas sur une page admin
    if ( !is_admin() && $query->is_main_query() ) {

        if ( is_author() ) {

            // montrer tous les articles
            $query->set( 'posts_per_page', -1 );
            $query->set( 'post_type', array( 'post' ) );
        }

    }
}
add_action( 'pre_get_posts', 'my_post_queries' );

Pour lister des custom post types, pensez à modifier la ligne commençant par $query->set('post_type') à votre convenance, en changeant le ('post') en ('nom-de-votre-custom-post-type').

Ensuite, dans le dossier de mon thème, un fichier author.php, dans lequel j’ai inséré le code qui suit :

<?php get_header(); ?>
<?php
if(isset($_GET['author_name'])) :
$curauth = get_userdatabylogin($author_name);
else :
$curauth = get_userdata(intval($author));
endif;
?>

<h2>Les articles de <?php echo $curauth->nickname; ?> sur <a href="http://www.https://wpchannel.com/">WordPress Channel</a> :</h2>

<?php while (have_posts()) : the_post(); ?>

<h3> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a><h3>
<?php the_time('j/n/Y'); ?></span>, <?php $category = get_the_category(); echo $category[0]->cat_name;?>

<?php endwhile; wp_reset_query(); ?>
<?php get_footer(); ?>

WordPress prendra en compte la présence du fichier author.php dans votre thème et s’en servira pour afficher une page de l’auteur qui contiendra « Les articles de (nom / pseudo de l’auteur) sur WordPress Channel », suivi de la liste des articles qu’il a publié, accompagnés de leur date de publication et de la catégorie dans laquelle ils sont classés.

Pensez à changer la phrase d’introduction pour qu’elle s’accorde à votre propre site avant d’uploader le fichier sur votre FTP !

3 commentaires

  1. Julio Potier

    Hello

    Il y a un soucis dans le code, les variables $author_name et $author ne sont pas déclarées, et la variable en GET n’est pas utilisée (et le pastacode a buggé on voit PRE et CODE).
    Aussi manque une vérif que $curauth est bien un user trouvé avant de continuer, sinon warning partout
    Bye !

  2. andro

    Merci Julio Potier pour la correction j’ai tésté le code le premier jour de la publication du post et ça pas marché mais en revisitant encore une fois le post, j’ai remarqué les modifications maintenant ça marche nickel
    Merci Mylène Boyrie pour le post très utiles pour plusieurs webmaster qui partagent leurs blogs avec d’autres rédacteurs

Laisser un commentaire

Thèmes & Plugins
Premium By WP Channel

WP Alacarte propose des produits et services de qualité
made in France pour la plateforme WordPress.

Tout est prêt pour créer votre site à la carte !

  • Thèmes et extensions premium
  • Facilité d’utilisation garantie
  • Temps de chargement optimisé
  • Personnalisation avancée
Découvrir

Rejoignez la communauté WordPress !

Faites partie de l’aventure en devenant membre d’une association WordPress. Conférences, ateliers, BarCamp, WordCamp… Venez
partager votre passion pour WordPress !

Aurélien DENIS,
président des associations WordPress Francophone et WPMX