WP Channel est un projet multi-auteurs comme le souligne la page qui valorise les nombreux contributeurs.
Pour créer une telle page, nous aurons recours à un modèle de page et quelques fonctions PHP.
Étape n°1 – Création du modèle de page pour les contributeurs
À l’aide de votre éditeur de code favori, créez un nouveau fichier PHP dans le dossier de votre thème WordPress que vous nommerez template-contributors.php par exemple.
La déclaration d’un modèle de page passe par l’ajout d’une ligne de code.
Étape n°2 – Récupération de la structure du thème
Chaque thème dispose de sa propre structure plus ou moins complexe. De base, on appelle header.php et footer.php mais cela ne suffit généralement pas. Il nous faut reprendre les sections et autres balises <div>
présente dans le fichier page.php. Il est fort probable que votre thème intègre nativement un modèle taille large ou fullwidth – autrement dit, sans colonne latérale.
Reprenez donc cette structure en faisant un copier / coller puis supprimer tout ce qui trouve dans la boucle et elle avec, comme ceci :
Étape n°3 – Lister les contributeurs
Maintenant que nous disposons de la structure de page, il nous faut lister les utilisateurs qui rédigent du contenu chez vous. C’est sans doute la partie la plus intéressante : les comptes utilisateurs de WordPress disposent de champs (site Web, Facebook, Twitter, etc.) que vous pourrez afficher ou non selon les situations.
Pour commencer, nous allons faire une requête du type WP_User_Query
avec l’argument include
. Ce dernier nous permet de choisir les utilisateurs que nous souhaitons lister par leur ID – pour obtenir l’ID d’un élément sous WordPress, survolez ce dernier puis notez le numéro affiché dans la barre de détails de votre navigateur.
Et là je sens qu’une question vous taraude l’esprit : pourquoi ne pas utiliser l’argument role
?
La réponse est simple : si comme moi vous avez des utilisateurs avec le rôle auteur et d’autres avec le rôle administrateur vous ne serez pas en mesure de tous les afficher. Et oui, cet argument est une chaîne et non un tableau… dommage ! Des techniques alternatives existeraient mais elles relèvent bien souvent de la bidouille à mon sens.
Voici donc le bout de code qu’il vous faudra adapter à votre sauce :
Pour ma part, j’affiche les éléments suivants :
- Le nom et le prénom, c’est le minimum que l’on puisse faire ;
- La description de l’auteur ;
- Son gravatar mais vous pourriez également utiliser un champ personnalisé ;
- Un lien vers sa page d’archive ;
- Des liens de réseaux sociaux ;
Résultat final
Je vous propose de télécharger le code que j’utilise pour ma propre page de contributeurs sur ce site. Cependant, il est important de noter qu’il repose sur les technologies HTML5, Twitter Bootstrap et Masonry.
Un fichier PHP à placer dans votre thème et à adapter.
Taille : 1,5 Ko • Hits : 1 162Valoriser les auteurs de votre site est un élément essentiel à mon sens. Cela démontre le caractère collaboratif du Web alors faites de même !
Bonjour,
J’utilise le thème Smart Magazine et j’ai utilisé votre modèle de page afin d’obtenir le même résultat que vous sur mon blog. Pourtant, ien à faire! Ca ne s’affiche pas correctement. Pourriez-vous m’aider?
Merci.
Le lien pour télécharger le modèle ne fonctionne pas c’est dommage… Super tuto ca fonctionne tout seul 😉
Corrigé en principe ! Merci !
Salut Aurélien. Très bonne template, cependant, n’étant pas du tout dans le programmation et après avoir uploader mon fichier.php, que faut-il faire ensuite ? Pour que mes auteurs s’affichent dans la page qui leurs sont dédiés ? En attente d’une réponse, merci d’avance.
Bonjour tout le monde. Tout fonctionne très bien, mis à part que lorsque j’ajoute un auteur, parfois celui-ci s’affiche sur la page Auteurs que j’aie créée parfois non. Pourquoi ? Merci par avance de votre réponse.
Étrange, il faudrait voir ton code source sur un pastebin…
Bonjour ! Tout d’abord, un grand merci pour ce tuto qui m’a beaucoup aidé !
Par contre, je rencontre un problème… J’ai ajouté des lignes pour d’autres réseaux sociaux, et les icônes s’affichent, que le champ soit renseigné ou non dans le profil de l’utilisateur. Or, si mon utilisateur n’a pas de compte twitter, par exemple, je ne veux pas que l’icone s’affiche… Auriez vous une solution ?
Bonjour,
Tout d’abord merci pour ce tuto qui est tout simplement super,
mais j’ai une question qui est pour moi assez importante, Comment faire pour intégré automatiquement les contributeurs ?
Sans aller a chaque fois sur la page model et inséré les Id des contributeurs
La réponse sur le codex avec l’argument role que je n’ai pu utilisé ici pour la raison indiqué dans le tutoriel : http://codex.wordpress.org/Class_Reference/WP_User_Query#User_Role_Parameter
Bonjour,
Tout d’abord merci pour ce template qui ma permis de bien valoriser mes contributeurs.
Cela dit j’ai un petit soucis, car ce que je veux c’est afficher l’ensemble des contributeurs automatiquement sans intervenir sur le fichier source.
Auriez vous une solution pour ce problème?
Cordialement.
Bonjour,
Merci tout d’abord de ce tutoriel qui correspond à ce que je veux faire à l’intérieur de la page d’accueil, sous le dernier article paru. J’ai donc intégré votre code html dans ma page. Ca marche, mais les informations des contributeurs se rangent les unes sous les autres. J’ai essayé d’étudier votre feuille CSS, mais sans succès. Les identités CSS que j’utilise ne semblent pas être reconnues.
Y a-t-il un élément dont il faudrait tenir compte pour mettre en forme votre code ?
en vous remerciant par avance
cordialement
IL
Cela concerne effectivement l’apparence et donc la feuille de styles CSS. Il faut nécessairement des compétences en la matière afin d’obtenir le résultat que vous souhaitez.
Hello,
Question de Noob, il faut déclarer le template quelque part? J’ai uploader le fichier à la racine de mon thème, mais je ne le vois pas apparaître dans mon back-office parmi les templates disponibles..
Oui en créant une page et en choisissant ce modèle. 😉
Arggh merci pour ce template qui est exactement ce que je cherchais pour m’éviter d’installer un énième plugin du genre team manager. Par contre, je suis nulle en php et je ne comprends pas pourquoi mes auteurs (users) s’affichent par ordre alphabétique. J’ai beau regarder le code, je ne vois pas comme ça se fait.
Pour l’exemple, j’ai mis :
‘include’ => array( 7, 6, 23, 53, 64, 47, 45, 35, 11, 28, 57, 8, 4 )
Et ce n’est pas du tout dans cet ordre précis que les infos des auteurs s’affichent.
Une idée pour la noob que je suis ? 😀
Bonjour
pourquoi fait un tableau avec des id codées en dur ? Si tu as des auteurs que tu ne veux pas lister, tu peux certainement le gérer via les statuts, ou, au pire, via un usermeta, ou le nombre d’articles (ce que j’ai fait sur un de mes sites)
@Francine, l’intérêt de cette méthode, c’est qu’elle utilise la fonction native de wordpress, the_author_linkk() pour afficher la page de l’auteur (enrichie) ou la page de tous les auteurs. Alors que créer un article “auteur” empêche de faire le lien automatiquement entre cet article et la “meta” publié par… de plus ces “articles” vont se retrouver dans la boucle, il faut les identifier par une catégories, qui devrait logiquement être exclue de l’affichage des catégories normales…
Il faut toujours faire au plus proche de la structure de WordPress !
Salut,
je suis d’accord avec toi sauf que le vrai problème c’est qu’il sera bien pratique de devoir filtrer par rôles car ajouter une case à cocher dans chaque profil pour indiquer qu’ils ont un rôle ça fait moyen je trouve. 🙂
Bonjour,
Et si on voulait plutôt créer un “article” par membre, pour pouvoir écrire des commentaires sur sa page, cela serait-il beaucoup plus compliqué ?
Francine
Impossible de télécharger le fichier, il me met “Vous ne disposez pas des accès ! Attention !”. J’ai raté une étape? 😉
C’est corrigé, merci !
Salut !
J’ai le même problème que Geoffray, j’upload ton fichier et j’ai la même erreur.
Quand je modifie le test if, je n’ai plus le message d’erreur mais plus rien ne s’affiche.
De même si je le retire la portion de code contenant le message.
As-tu une idée de comment régler ce problème ?
Merci !
Quelle est l’erreur précisément ? Je ne pense pas que vous ayez le même problème. Dans le cas précédent, il s’agissait de l’impossibilité de télécharger le fichier PHP disponible en fin de tutoriel.
Salut !
Alors j’upload le fichier sur mon serveur et lorsque je me rends sur son url: j’ai “Vous ne disposez pas des accès ! Attention !”, l’erreur du security check en haut du code.
Si je modifie / supprime ce check, j’ai juste une page blanche …
C’est normal ! Vous ne devez pas accéder directement au fichier PHP depuis votre navigateur car le message que vous voyez est une sécurité.
Merci de lire ce tutoriel à propos des modèles de page sous WordPress : https://wpchannel.com/creer-modele-page-wordpress/ 😉
Bonjour Aurélien, ton article tombe à pic pour moi. Je souhaite justement affiche la liste des contributeurs de mon site. Petite particularité : je souhaite pouvoir l’afficher sous forme de classement par nombre de posts et également classé par mois. Ça fait plusieurs jours que je cherche une solution. As-tu une idée de la faisabilité ?
merci
Bonjour Romuald,
tu souhaites combiner 2 paramètres : nombre de posts et date ? J’ai du mal à visualiser le résultat… pour le premier, tu peux utiliser
post_count
comme argument deorberby
comme décrit sur le codex. 🙂Je voudrais la même chose que Romuald à vrai dire, pour ma part c’est pour réaliser un classement des rédacteurs sur le mois de Février par exemple mais je ne sais pas comment utiliser ses arguments, si tu as une idée stp !