Afficher les Custom Post Types dans les pages auteurs de WordPress

7 commentaires
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 Types.

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.

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é enregistré avec l’identifiant property. Nous souhaitons au final que la page de l’auteur affiche ses derniers articles mais aussi les derniers biens immobiliers mis 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 wpc_author_archive_cpt($query) {
if (! is_admin() && $query->is_main_query()) {
if ($query->is_author)
$query->set('post_type', array('post', 'property'));
}
}
add_action('pre_get_posts', 'wpc_author_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 wpc_author_archive_cpt($query) {
if (! is_admin() && $query->is_main_query()) {
if ($query->is_author) {
$query->set('post_type', array('property', 'page', 'post'));
}
}
add_action('pre_get_posts', 'wpc_author_archive_cpt');

Type de contenu personnalisé seulement

Ou encore si vous souhaitez vous limiter aux seuls Custom Post Types :

function wpc_author_archive_cpt($query) {
if (! is_admin() && $query->is_main_query()) {
if ($query->is_author) {
$query->set('post_type', array('property'));
}
}
add_action('pre_get_posts', 'wpc_author_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.

Par Aurélien Denis

Consultant & Développeur WordPress / WooCommerce. Un site à créer, à maintenir ou à débuguer ? Contactez-moi.

7 commentaires
  1. Arnaud

    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.

    1. Aurélien Denis auteur de l’article

      Ben oui… tout est possible avec WordPress en fait ! 😉

  2. Aurélien Denis auteur de l’article

    Article corrigé ! Merci !

  3. Daniel Roch

    J’allais poser la même question, surtout qu’on supprimer l’action dans l’action elle-même (Inception quand tu nous tiens ^^)

  4. GeekPress

    En fait pour faire simple, le remove_action est inutile. Tu peux le supprimer, ça fonctionnera pareil.

  5. GeekPress

    Pourquoi mettre un remove action ? Il faudrait plutôt faire un return $query.

    1. Aurélien Denis auteur de l’article

      Un petit pastebin correctif ? 🙂

Laisser un commentaire