Skip to content

Instantly share code, notes, and snippets.

@diije
Created June 19, 2013 12:27
Show Gist options
  • Save diije/5813906 to your computer and use it in GitHub Desktop.
Save diije/5813906 to your computer and use it in GitHub Desktop.
WordPress : champs supplémentaires dans le profil utilisateur

Ajouter des champs supplémentaires sur le profil utilisateur dans l'administration de votre blog WordPress.
Exemple ici avec un champ de description détaillée.

  1. ajouter le code du fichier functions.php dans le fichier functions.php de votre thème.
  2. utiliser l'une des méthodes proposées fichier author.php pour afficher la description détaillée sur le front-end.

Licence

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 non transposé.

<?php
/* Méthode n°1 */
// Si l'utilisateur a renseigné sa biographie détaillée, l'afficher sur le front-end
if ( get_the_author_meta( 'bio' ) ) :
?>
<p><?php the_author_meta( 'bio' ); ?></p>
<?php
endif;
?>
<?php
/* Méthode n°2 (à privilégier quand plusieurs champs doivent être affichés) */
//récupération de l'intégralité des infos sur l'utilisateur
$userinfo = get_userdata(get_the_author_id());
//si le champ "bio" est renseigné, on l'affiche
if ($userinfo->bio) {
echo '<p>'.$userinfo->bio.'</p>';
}?>
?>
<?php
add_action( 'show_user_profile', 'dfr_profile_fields' );
add_action( 'edit_user_profile', 'dfr_profile_fields' );
// Fonction d'affichage des champs
function dfr_profile_fields( $user ) { ?>
<h3>Informations supplémentaires</h3>
<table class="form-table">
<tr>
<th><label for="twitter">Biographie détaillée</label></th>
<td>
<textarea id="bio" name="bio" cols="30" rows="10"><?php echo esc_attr( get_the_author_meta( 'bio', $user->ID ) ); ?></textarea><br />
<span class="description">Une biographie plus complète qui sera affichée sur votre page profil publique.</span>
</td>
</tr>
</table>
<?php }
add_action( 'personal_options_update', 'dfr_save_profile' );
add_action( 'edit_user_profile_update', 'dfr_save_profile' );
// Fonction de sauvegarde
function dfr_save_profile( $user_id ) {
// on s'assure que l'utilisateur a les droits pour éditer le profil
if ( !current_user_can( 'edit_user', $user_id ) )
return false;
// Mise à jour de la base de données avec la biographie détaillée.
update_usermeta( $user_id, 'bio', $_POST['bio'] );
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment