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->is_author)
$query->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/
Bonjour,
Le problème est comment supprimer une page Author .. exemple : http://www.votresite.fr/author/home/page/6/ !!!
Pouvez-vous m’aider svp
Bonjour Lynda
Je vous propose de suivre ce bout de code à ajouter dans votre fichier functions.php ou via un plugin comme https://fr.wordpress.org/plugins/code-snippets/
add_action('template_redirect', 'my_custom_disable_author_page');
function my_custom_disable_author_page() {
global $wp_query;
if ( is_author() ) {
// Redirect to homepage, set status to 301 permenant redirect.
// Function defaults to 302 temporary redirect.
wp_redirect(get_option('home'), 301);
exit;
}
}
Merci beaucoup !