WordPress, Theme, Profil, Auteur – Etendre le profil des auteurs sur un blog wordpress
L’objectif poursuivi est de faire une mise en page aussi sophistiqué que le site mashable.com ou le site TechCrunch.com le font pour leurs auteurs. Il n’est pas nécessaire pour cela de prendre un marteau pour écraser une mouche c’est à dire installer l’assortiment des plugins BuddyPress sur votre Blog WordPress comme c’est aujourd’hui possible mais vous aurez alors totalement à repenser votre thème !
Définir ce que l’on souhaite afficher sur une page auteur
On a vu des modèles sur les sites cites plus haut mais on veut presque si on ne peut pas aller plus loin…
Pour trouver quoi faire et comment faire mieux vaut se reporter à la page de référence du codex Author Templates
http://codex.wordpress.org/Author_Templates
On va tenter rapidement de voir ce qui est directement exploitable sur la page d’un auteur et comment étendre facilement des données de son profil. Les éléments que nous souhaitons afficher sur cette page auteur sont les suivants :
- author-header
- Une image d’illustration (author_header_illustration)
- Une baseline de présentation de l’auteur (author_header_baseline)
- sidebar
- Une biographie de l’auteur (author_bio_sidebar)
- Les fils RSS, Atom de l’auteur (author_feeds_sidebar)
- Les liens sociaux [Twitter, Facebook…] de l’auteur (author_social_sidebar)
- content
- Les articles [posts] de l’auteur, une page archives personnelle (author_posts_content)
Pour ces 4 éléments, il sera nécessaire de faire un peu de développement cela fera l’objet d’un article ultérieur.
- Les derniers commentaires sur les articles de l’auteur (author_comments_sidebar)
- Les tags des articles (posts) de l’auteur pour faire un nuage de mots_clés (author_tags_sidebar)
- Les catégories des articles (posts) de l’auteur (author_categories_sidebar)
- Les liens [blogroll] de l’auteur (author_blogroll_sidebar)
Contrôler l’affichage du contenu d’une page auteur
Cette nouvelle fonction permet la sélection d’une page spécifique par auteur.
get_author_template(); |
Etendre le profil de chaque auteur
Le code à insérer dans functions.php
de votre thème.
/* extend the profile */ add_action( 'show_user_profile', 'my_show_extra_profile_fields' ); add_action( 'edit_user_profile', 'my_show_extra_profile_fields' ); function my_show_extra_profile_fields( $user ) { ?> <h3>Extra profile information</h3> <table class="form-table"> <tr> <th><label for="twitter">Twitter</label></th> <td> <input type="text" name="twitter" id="twitter" value="<?php echo esc_attr ( get_the_author_meta( 'twitter', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description">Please enter your Twitter profile URL.</span> </td> </tr> <tr> <th><label for="facebook">Facebook</label></th> <td> <input type="text" name="facebook" id="facebook" value="<?php echo esc_attr ( get_the_author_meta( 'facebook', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description">Please enter your facebook profile URL.</span> </td> </tr> <tr> <th><label for="linkedin">LinkedIn</label></th> <td> <input type="text" name="linkedin" id="linkedin" value="<?php echo esc_attr ( get_the_author_meta( 'linkedin', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description">Please enter your linkedin profile URL.</span> </td> </tr> <!-- OTHER INFORMATIONS --> <tr> <th><label for="linkedin">author_header_illustration</label></th> <td> <input type="text" name="author_header_illustration" id="author_header_illustration" value="<?php echo esc_attr ( get_the_author_meta( 'author_header_illustration', $user->ID ) ); ?>" class="regular-text" /><br /> <span class="description">Please enter your author_header_illustration.</span> </td> </tr> <tr> <th><label for="linkedin">author_header_baseline</label></th> <td> <textarea name="author_header_baseline" id="author_header_baseline" id="author_header_baseline" rows="5" cols="30"><?php echo esc_attr ( get_the_author_meta( 'author_header_baseline', $user->ID ) ); ?></textarea><br/> <!-- <input type="text" name="author_header_baseline" id="author_header_baseline" value="" class="regular-text" /><br /> --> <span class="description">Please enter your author_header_baseline.</span> </td> </tr> </table> <?php } add_action( 'personal_options_update', 'my_save_extra_profile_fields' ); add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' ); function my_save_extra_profile_fields( $user_id ) { if ( !current_user_can( 'edit_user', $user_id ) ) return false; /* Copy and paste this line for additional fields. Make sure to change 'twitter' to the field ID. */ update_usermeta( $user_id, 'twitter', $_POST['twitter'] ); update_usermeta( $user_id, 'facebook', $_POST['facebook'] ); update_usermeta( $user_id, 'linkedin', $_POST['linkedin'] ); /* OTHER INFORMATIONS */ update_usermeta( $user_id, 'author_header_illustration', $_POST['author_header_illustration'] ); update_usermeta( $user_id, 'author_header_baseline', $_POST['author_header_baseline'] ); |
De quoi dispose-t-on désormais dans une page auteur
Le code de la page author.php
. Vous pouvez tout aussi bien mettre une page par auteur, pour se faire il vous suffira de créer author-2.php ou author-toto.php
WordPress 3.0 it will be possible to use specific author templates. The function get_author_template() has been expanded in wp-includes/theme.php.
Now you can create a author-michael.php or author-123.php, which will be called via the WordPress Template Hierarchy in connection to the author with user_nicename michael or ID 123. Basically the same funtionality as we known for categories.
/*
See more on
http://codex.wordpress.org/Author_Templates
* $curauth->aim;
* $curauth->description;
* $curauth->display_name;
* $curauth->first_name;
* $curauth->ID;
* $curauth->jabber;
* $curauth->last_name;
* $curauth->nickname;
* $curauth->user_email;
* $curauth->user_login;
* $curauth->user_nicename;
* $curauth->user_registered;
* $curauth->user_url;
* $curauth->yim;
See more on
http://codex.wordpress.org/Function_Reference/the_author_meta
* user_login
* user_pass
* user_nicename
* user_email
* user_url
* user_registered
* user_activation_key
* user_status
* display_name
* nickname
* first_name
* last_name
* description
* jabber
* aim
* yim
* user_level
* user_firstname
* user_lastname
* user_description
* rich_editing
* comment_shortcuts
* admin_color
* plugins_per_page
* plugins_last_view
* ID
*/ |
Les élements de la page auteur author.php
<?php if(isset($_GET['author_name'])) : $curauth = get_user_by('slug', $author_name); else : $curauth = get_userdata(intval($author)); endif; echo (''.get_author_template().''); echo ('author_header_illustration => '.$curauth->author_header_illustration.''); echo ('author_header_baseline => '.$curauth->author_header_baseline.''); echo ('facebook => '.$curauth->facebook.''); echo ('linkedin => '.$curauth->linkedin.''); echo ('aim => '.$curauth->aim.''); echo ('description => '.$curauth->description.''); echo ('display_name => '.$curauth->display_name.''); echo ('ID => '.$curauth->ID.''); /*....etc.*/ echo ('yim => '.$curauth->yim.''); /* Queue the first post, that way we know who * the author is when we try to get their name, * URL, description, avatar, etc. * * We reset this later so we can run the loop * properly with a call to rewind_posts(). */ if ( have_posts() ) the_post(); /* use within the loop */ /* echo (''.the_author_meta('user_level').''); echo (''.the_author_meta('user_firstname').''); echo (''.the_author_meta('user_lastname').''); echo (''.the_author_meta('user_description').''); echo (''.the_author_meta('rich_editing').''); echo (''.the_author_meta('comment_shortcuts').''); echo (''.the_author_meta('admin_color').''); echo (''.the_author_meta('plugins_per_page').''); echo (''.the_author_meta('plugins_last_view').''); echo (''.the_author_meta('ID').''); */ /* Since we called the_post() above, we need to * rewind the loop back to the beginning that way * we can run the loop properly, in full. */ rewind_posts(); /* Run the loop for the author archive page to output the authors posts * If you want to overload this in a child theme then include a file * called loop-author.php and that will be used instead. */ get_template_part( 'loop', 'author' ); ?> |
La gestion des feeds par auteur
Il est extrêmement simple de bénéfier du flux exclusif sur la base du nom de l’auteur authorname
. Dans le codex, il est dit que les url de feed sont de la forme suivante http://example.com/author/authorname/feed/
.
Source : http://codex.wordpress.org/WordPress_Feeds#Authors
Si votre blog utilise des permaliens, vous pouvez donc accéder aux fluxs suivants par auteur :
- [adresse_de_votre_wordpress]/author/[nom_de_l_auteur]/feed/
- [adresse_de_votre_wordpress]/author/[nom_de_l_auteur]/feed/rss/
- [adresse_de_votre_wordpress]/author/[nom_de_l_auteur]/feed/rss2/
- [adresse_de_votre_wordpress]/author/[nom_de_l_auteur]/feed/rdf/
- [adresse_de_votre_wordpress]/author/[nom_de_l_auteur]/feed/atom/
Créer un réseau multi-sites avec WordPress 3.0
En fait, WPMU et WP ont fusionné depuis la version 3.0. Il vous est donc possible de faire de votre WordPress 3.0, un reseau multi-blogs.
1. Première étape : désactiver les plugins
Il faut désactiver tous les plugins de votre Blog, puis vous livrer au quelques changements dans le fichier wp-config.php
/** Enable or disable Worpress Multi-site features **/ define('WP_ALLOW_MULTISITE', true); |
2. Deuxième étape : Lancer la procédure d’installation
2.1 Créer a blogs.dir directory
Create a blogs.dir directory in [chemin_vers_wordpress]/wordpress/wp-content. This directory is used to stored uploaded media for your additional sites and must be writeable by the web server.
2.2 Modifier le fichier wp-config.php
Add the following to your wp-config.php file in [chemin_vers_wordpress]/wordpress/ above the line reading /* That’s all, stop editing! Happy blogging. */:
C’est ces lignes qu’il faut ajouter dans votre fichier wp-config.php
define( 'MULTISITE', true ); define( 'SUBDOMAIN_INSTALL', false ); $base = '/wp_hemotion/wordpress/'; define( 'DOMAIN_CURRENT_SITE', '127.0.0.1' ); define( 'PATH_CURRENT_SITE', '/wp_hemotion/wordpress/' ); define( 'SITE_ID_CURRENT_SITE', 1 ); define( 'BLOG_ID_CURRENT_SITE', 1 ); |
3. Modifier le fichier .htaccess
Add the following to your .htaccess file in [chemin_vers_wordpress]/wordpress/, replacing other WordPress rules:
Le fichier d’origine .htaccess
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /wp_hemotion/wordpress/ RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wp_hemotion/wordpress/index.php [L] </IfModule> # END WordPress |
Le fichier modifié .htaccess
# BEGIN WordPress RewriteEngine On RewriteBase /wp_hemotion/wordpress/ RewriteRule ^index.php$ - [L] # uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L] RewriteRule . index.php [L] # END WordPress |
C’est fait, votre WordPress est devenu un WordPress MU !
iv. Once you complete these steps, your network is enabled and configured. You will have to log in again. Log In
Since version 3.0, regular WordPress and WordPress MU are merged into WordPress 3.
Source : http://vadimk.com/2010/06/19/enable-wordpress-mu-in-30/
Quel plugin choisir pour étendre le profil des utilisateurs.
Il existe un grand nombre de plugin pour étendre le profil des utilisateurs. Les voici dans le désordre mais nous en avons tester qu’une très faible partie.
- Cimy User Extra Fields
Un très puissant plugin qui permet d’ajouter des champs lors de l’inscription à votre Blog. Ce plugin fonctionne sous WP et WPMU
http://wordpress.org/extend/plugins/cimy-user-extra-fields/ - Profile Pic
http://wordpress.org/extend/plugins/profile-pic/ - Extended User Profile
Très décevant…
http://wordpress.org/extend/plugins/extended-user-profile/ - Recent Posts With Authors Widget
http://wordpress.org/extend/plugins/recent-posts-with-authors-widget/ - Authors Widget
http://wordpress.org/extend/plugins/authors/ - Author Based Twitter Widget
http://wordpress.org/extend/plugins/author-based-twitter-widget/ - Theme My Profile
Ce plugin permet de créer une page pour votre profil d’utilisateur.
http://wordpress.org/extend/plugins/theme-my-profile/ - Rich Text Biography
http://wordpress.org/extend/plugins/rich-text-biography/ - User Avatar
http://wordpress.org/extend/plugins/user-avatar/ - Blog Metrics
http://wordpress.org/extend/plugins/blog-metrics/ - Audit Trail Plugin
http://urbangiraffe.com/plugins/audit-trail/ - Role Manager
http://www.im-web-gefunden.de/wordpress-plugins/role-manager/ - Recherche du mot-clé
author page
sur l’espace de plugins wordpress
http://wordpress.org/extend/plugins/tags/author-page - Recherche du mot-clé
multi-author
sur l’espace de plugins wordpress
http://wordpress.org/extend/plugins/tags/multi-author
En savoir plus
- How to Create a Kickass WordPress Authors Page
http://wpsplash.com/how-to-create-a-wordpress-authors-page/ - Using Author Template Tags Outside of the WordPress Loop
http://lorelle.wordpress.com/2006/05/06/using-author-template-tags-outside-of-the-wordpress-loop/ - How to Make a Royally Awesome Author Template in WordPress
http://www.studionashvegas.com/wordpress/how-to-make-a-royally-awesome-author-template-in-wordpress/ - 10 Must-Have Plugins for Multi-Author WordPress Blogs
http://www.bestwpplugins.net/10-must-have-plugins-for-multi-author-wordpress-blogs.html