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 :

[pastacode lang=”php” message=”” highlight=”” provider=”manual” manual=”%2F*%20Query%20page%20auteur%20*%2F%0Afunction%20my_post_queries(%20%24query%20)%20%7B%0A%20%20%20%20%2F%2F%20v%C3%A9rifier%20qu’on%20n’est%20pas%20sur%20une%20page%20admin%0A%20%20%20%20if%20(%20!is_admin()%20%26%26%20%24query-%3Eis_main_query()%20)%20%7B%0A%0A%20%20%20%20%20%20%20%20if%20(%20is_author()%20)%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20montrer%20tous%20les%20articles%0A%20%20%20%20%20%20%20%20%20%20%20%20%24query-%3Eset(%20’posts_per_page’%2C%20-1%20)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%24query-%3Eset(%20’post_type’%2C%20array(%20’post’%20)%20)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%7D%0A%7D%0Aadd_action(%20’pre_get_posts’%2C%20’my_post_queries’%20)%3B”/]

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 :

[pastacode lang=”php” message=”” highlight=”” provider=”manual” manual=”%3C%3Fphp%20get_header()%3B%20%3F%3E%0A%3C%3Fphp%0Aif(isset(%24_GET%5B’author_name’%5D))%20%3A%0A%24curauth%20%3D%20get_userdatabylogin(%24author_name)%3B%0Aelse%20%3A%0A%24curauth%20%3D%20get_userdata(intval(%24author))%3B%0Aendif%3B%0A%3F%3E%0A%0A%3Ch2%3ELes%20articles%20de%20%3C%3Fphp%20echo%20%24curauth-%3Enickname%3B%20%3F%3E%20sur%20%3Ca%20href%3D%26%23034%3Bhttp%3A%2F%2Fwww.https%3A%2F%2Fwpchannel.com%2F%26%23034%3B%3EWordPress%20Channel%3C%2Fa%3E%20%3A%3C%2Fh2%3E%0A%0A%3C%3Fphp%20while%20(have_posts())%20%3A%20the_post()%3B%20%3F%3E%0A%0A%3Ch3%3E%20%3Ca%20href%3D%26%23034%3B%3C%3Fphp%20the_permalink()%20%3F%3E%26%23034%3B%20rel%3D%26%23034%3Bbookmark%26%23034%3B%20title%3D%26%23034%3B%3C%3Fphp%20the_title()%3B%20%3F%3E%26%23034%3B%3E%3C%3Fphp%20the_title()%3B%20%3F%3E%3C%2Fa%3E%3Ch3%3E%0A%3C%3Fphp%20the_time(‘j%2Fn%2FY’)%3B%20%3F%3E%3C%2Fspan%3E%2C%20%3C%3Fphp%20%24category%20%3D%20get_the_category()%3B%20echo%20%24category%5B0%5D-%3Ecat_name%3B%3F%3E%0A%0A%3C%3Fphp%20endwhile%3B%20wp_reset_query()%3B%20%3F%3E%0A%3C%3Fphp%20get_footer()%3B%20%3F%3E”/]

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 !

Mylène Boyrie
Publié le Mis à jour il y a 3 ans 4 commentaires
Par Mylène Boyrie

Freelance, passionnée de livres et installée à Bordeaux, Mylène Boyrie est spécialisée dans l’édition print et numérique, ainsi que dans la création de sites Web développés sous WordPress.

4 commentaires
  1. Mary

    Mille merci pour cet article qui m’a été bien utile !! Merci de partager votre savoir.

  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

  3. 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 !

    1. Mylène Boyrie auteur de l’article

      Forcément, j’avais carrément oublié une partie du tuto… Merci de me l’avoir fait remarquer 🙂