Afficher les custom post types dans les pages auteurs de WordPress
Les pages d’auteurs sous WordPress répertorie l’ensemble des articles associé à un utilisateur mais ne prennent pas en compte les custom post type. Ce tutoriel vous montrera comment générer des pages d’archives de l’auteur incluant tous les contenus rédigés.
Pour rappel, chaque auteur dispose d’un URL qui lui est propre. Par exemple, vous pouvez retrouver les articles de Cybercraft, notre spécialiste jQuery à cette URL : http://wpchannel.com/author/cybercraft/
Cette page d’archive correspond au fichier author.php dans le dossier de votre thème et peut donc être personnalisé pour afficher des informations relatives à l’auteur.
Dans notre exemple pratique, nous disposons d’un type de contenu personnalisé - custom post type, intitulé annonce. Nous souhaitons au final que la page de l’auteur affiche ses derniers articles mais aussi les dernières annonces mises en ligne.
Il nous faut donc modifier le fichier functions.php que vous trouverez dans le dossier /wp-content/themes/NOM_DU_THEME/. Comme d’habitude, faites une copie préalable de ce fichier pour éviter toute erreur de manipulation.
Articles + type de contenu personnalisé
Rajoutez ensuite les lignes de code suivante entre balises PHP :
function auteur_archive_cpt($query) {
if ($query->is_author)
$query->set( 'post_type', array('post', 'annonce') );
}
add_action('pre_get_posts', 'auteur_archive_cpt');
Notez que c’est à la ligne 3 que vous devrez indiquer le nom du custom post type.
Articles + type de contenu personnalisé + page
Vous pouvez même indiquer plusieurs types comme ci-dessous avec les pages de WordPress :
function auteur_archive_cpt($query) {
if ($query->is_author)
$query->set( 'post_type', array('annonce', 'page', 'post') );
}
add_action('pre_get_posts', 'auteur_archive_cpt');
Type de contenu personnalisé seulement
Ou encore si vous souhaitez vous limiter aux seuls custom post type :
function auteur_archive_cpt($query) {
if ($query->is_author)
$query->set( 'post_type', array('annonce') );
}
add_action('pre_get_posts', 'auteur_archive_cpt');
Libre à vous d’ajouter autant de contenu personnalisé que souhaitez en prenant soin de les séparer par des virgules et en les entourant d’apostrophes. A vous de jouer avec les différentes combinaisons !
Les types de contenu personnalisé et les taxonomies personnalisées de WordPress sont très utiles mais n’oubliez pas de modifier votre thème pour les prendre en charge efficacement.
Podcast: Télécharger (Durée: 2:50 — 82.4MB)
WordPress 3.5 – Un CMS pour créer et gérer blogs et sites Web
RT-Theme 17, traduction française
Maven Hosting, 12 mois d’hébergement
Themetick, traduction française
Pourquoi mettre un remove action ? Il faudrait plutôt faire un return $query.
Un petit pastebin correctif ?
En fait pour faire simple, le remove_action est inutile. Tu peux le supprimer, ça fonctionnera pareil.
J’allais poser la même question, surtout qu’on supprimer l’action dans l’action elle-même (Inception quand tu nous tiens ^^)
Article corrigé ! Merci !
Bonjour Aurélien,
Merci pour ce tuto, je ne savais même pas que c’était possible en faite :/
Du coup on peut personnaliser la page auteur comme on le souhaite.
Ben oui… tout est possible avec WordPress en fait !