WordPress : Identifier une page par son auteur

Voici que je partage avec vous ma vie de dev’… tout à fait palpitante !…Pour les besoins d’un client, j’ai dû afficher les pages liées aux auteurs et j’ai dû batailler fort pour le faire. Plutôt que de garder cela pour moi, autant le partager avec vous au cas où cela vous serait utile (niv. Expert).

Si vous disposez d’un site qui accueille plus d’un rédacteur, il peut-être intéressant d’afficher les articles d’un blog par auteur. A priori, cela pourrait présager des développements sans fond.
Dieu merci ! Les développeurs WordPress ont prévu ce cas de figure en pré-codant certaines fonctions. Il suffit en effet d’indiquer le code suivant dans un lien ou directement dans la barre d’adresse :

http://www.votresite.fr/?author=3[/php]

Le chiffre 3 est l'ID de l'auteur que vous découvrirez en contre-bas de votre navigateur, en survolant l'utilisateur (dans Utilisateurs > Tous les utilisateurs). On peut également citer plus d'un auteur en les séparant d'une virgule :

http://www.votresite.fr/?author=3,1[/php]

Notez que si vous désirez ajouter dynamiquement la mention de l'auteur dans vos pages, il vous faudra le faire en php dans votre thème avec le code suivant :

Cet article a été écrit par <?php the_author (); ?>[/php]

Vous pouvez également réécrire cette url peut élégante et peu mémorisable en ajoutant une ligne de code qui va réécrire votre commande. Faite le dans le fichier .htaccess normalement placé à la racine de votre site. La fonction suivante réécrit l'appel de l'auteur (dont les IDs sont présentement 3 et 1) par la mention http://www.votresite.fr/selection-auteur (vous pouvez bien entendu changer ce slug)

RewriteRule ^selection-auteur/?$ ?author=3,1 [NC][/php]

Résoudre l'affichage des pages et des custom post type d'un auteur

Ce système d'affichage de vos articles est parfaitement assuré, mais pour une raison que je n'ai pas encore trouvé, il n'est pas possible d'afficher les pages, ni les customs post type que vos auteurs pourraient utiliser (damned it !)

En utilisant les nombreuses ressources de pre-post, et grâce à Jason Manheim dont je tire cette ressource et que je remercie chaleureusement, on peut habillement contourner cette limitation en injectant ces quelques lignes de code dans votre fichier functions.php (soit celui de votre thème, soit préférablement du thème enfant si vous utilisez un thème premium) :

function custom_post_author_archive($query) {
if ($query-&gt;is_author)
$query-&gt;set( 'post_type', array('nom-du-custom-post-type', 'client', 'post') );
remove_action( 'pre_get_posts', 'custom_post_author_archive' );
}
add_action('pre_get_posts', 'custom_post_author_archive');[/php]

On peut également remplacer array('nom-du-custom-post-type', 'client', 'post') ); par array('post', 'page') ); pour afficher cette fois ci les pages de vos auteurs.

C'est la pause...vous pouvez aller prendre l'air maintenant ; vous l'avez méritez si vous m'avez suivi jusque là

Source : http://designpx.com/tutorials/custom-post-types-author-archive/

3 réponses

Ajouter un commentaire

Rejoindre la discussion?
N’hésitez pas à contribuer !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *