J'ai ajouté le code suivant à mon functions.php pour développer les fonctionnalités de la page de profil de l'utilisateur et pouvoir ajouter des liens vers les médias sociaux des auteurs.
function my_new_contactmethods( $contactmethods ) {
// Add Site
$contactmethods['mysite'] = 'My Site';
// Add Google Plus
$contactmethods['google_plus'] = 'Google Plus';
// Add Behance
$contactmethods['behance'] = 'Behance';
// Add Twitter
$contactmethods['Twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook';
return $contactmethods;
}
add_filter('user_contactmethods','my_new_contactmethods',10,1);
Sur le author.php j'appelle les liens comme ceci:
<a title="Follow me on Twitter" href="<?php the_author_meta( 'Twitter', $author_id ); ?>"><img src="Twitter.png" alt="" /></a>
<a title="Follow me on Facebook" href="<?php the_author_meta( 'facebook', $author_id ); ?>"><img src="facebook.png" alt="" /></a>
<a title="Follow me on Behance" href="<?php the_author_meta( 'behance', $author_id ); ?>"><img src="behance.png" alt="" /></a>
<a title="Follow me on Google+" href="<?php the_author_meta( 'google_plus', $author_id ); ?>"><img src="google-plus.png" alt="" /></a>
Le problème avec cette solution est qu’elle affiche l’image et le lien même si l’auteur n’a pas rempli le champ correspondant.
Serait-il un moyen facile de faire écho aux liens précédemment remplis?
Ceci est un problème très simple PHP, sans rapport avec WordPress. Vous devez vérifier si la valeur est vide avant echo
ing. Donc, stockez-les d'abord en tant que variables:
$Twitter = get_the_author_meta('Twitter', $author_id);
$facebook = get_the_author_meta('facebook', $author_id);
//etc
Ensuite, vérifiez-les avant d'afficher:
if(!empty($Twitter)) {
echo '<a title="Follow me on Twitter" href="'.$Twitter.'"><img src="Twitter.png" alt="" /></a>';
}
if(!empty($facebook)) {
echo '<a title="Follow me on Facebook" href="'.$facebook.'"><img src="facebook.png" alt="" /></a>';
}
//etc