web-dev-qa-db-fra.com

Afficher le lien vers le média social de l'auteur lorsqu'il existe

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?

1
Eric Mitjans

Ceci est un problème très simple PHP, sans rapport avec WordPress. Vous devez vérifier si la valeur est vide avant echoing. 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
3
GhostToast