web-dev-qa-db-fra.com

Biographie de l'auteur Liens sociaux

J'utilise un code simple pour montrer le lien social de l'utilisateur dans la biographie de l'auteur. dans functions.php

<?php
function add_remove_contactmethods( $contactmethods ) {
    // Add Twitter
    $contactmethods['Twitter'] = 'Twitter';
    //Add Facebook
    $contactmethods['facebook'] = 'Facebook';
 // Remove Contact Methods
    unset($contactmethods['aim']);
    unset($contactmethods['yim']);
    unset($contactmethods['Jabber']);

    return $contactmethods;
}
add_filter('user_contactmethods','add_remove_contactmethods',10,1);
?>

en single.php

   <a href="<?php the_author_meta('Twitter'); ?>" title="Twitter" target="_blank" id="Twitter"><img src="/images/Twitter.png" alt="Twitter" /></a>

alors, comment puis-je masquer le lien social dans l'auteur bio lorsque le champ est vide dans le profil de l'utilisateur.

aidez-moi, s'il vous plaît...

1
Maan

Vous devez vérifier si le champ est vide ou non avant d’imprimer le lien à l’aide de la fonction get_the_author_meta .

<?php if(!empty(get_the_author_meta('Twitter'))) { ?>
   <a href="<?php the_author_meta('Twitter'); ?>" title="Twitter" target="_blank" id="Twitter"><img src="/images/Twitter.png" alt="Twitter" /></a>
<?php } ?>

ou essayer

<?php if(!empty(get_user_meta(get_the_author_meta('ID'),'Twitter'))) { ?>
   <a href="<?php the_author_meta('Twitter'); ?>" title="Twitter" target="_blank" id="Twitter"><img src="/images/Twitter.png" alt="Twitter" /></a>
<?php } ?>

mais, pour certaines raisons, le code suivi l'a corrigé

<?php if(strlen(get_the_author_meta('Twitter')) >5) { ?>
   <a href="<?php the_author_meta('Twitter'); ?>" title="Twitter" target="_blank" id="Twitter"><img src="/images/Twitter.png" alt="Twitter" /></a>
<?php } ?>
2
M-R

Voici un moyen sophistiqué de créer des liens sociaux, puis de les récupérer là où vous avez besoin d’utiliser une fonction simple. Vous pouvez également utiliser cette fonction pour créer un shortcode. (J'ai copié le code de l'un de mes projets, vous pouvez donc modifier certains préfixes de classe si vous le souhaitez).

    /*-----------------------------------------------------------*/
    /*   Add User Social Links (functions.php)
    /*-----------------------------------------------------------*/
    function cfw_add_user_social_links( $user_contact ) {

    /* Add user contact methods */
    $user_contact['Twitter']   = __('Twitter Link', 'textdomain');
    $user_contact['facebook']  = __('Facebook Link', 'textdomain');
    $user_contact['linkedin']  = __('LinkedIn Link', 'textdomain');
    $user_contact['github']    = __('Github Link', 'textdomain');
    $user_contact['instagram'] = __('Instagram Link', 'textdomain');
    $user_contact['dribbble']  = __('Dribbble Link', 'textdomain');
    $user_contact['behance']   = __('Behance Link', 'textdomain');
    $user_contact['skype']     = __('Skype Link', 'textdomain');

    return $user_contact;
}
add_filter('user_contactmethods', 'cfw_add_user_social_links');

function cfw_get_user_social_links() {
    $return  = '<ul class="list-inline">';
    if(!empty(get_the_author_meta('Twitter'))) {
        $return .= '<li><a href="'.get_the_author_meta('Twitter').'" title="Twitter" target="_blank" id="Twitter"><i class="cfw-icon-Twitter"></i></a></li>';
    }
    if(!empty(get_the_author_meta('facebook'))) {
        $return .= '<li><a href="'.get_the_author_meta('facebook').'" title="Facebook" target="_blank" id="facebook"><i class="cfw-icon-facebook"></i></a></li>';
    }
    if(!empty(get_the_author_meta('linkedin'))) {
        $return .= '<li><a href="'.get_the_author_meta('linkedin').'" title="LinkedIn" target="_blank" id="linkedin"><i class="cfw-icon-linkedin"></i></a></li>';
    }
    if(!empty(get_the_author_meta('github'))) {
        $return .= '<li><a href="'.get_the_author_meta('github').'" title="Github" target="_blank" id="github"><i class="cfw-icon-github"></i></a></li>';
    }
    if(!empty(get_the_author_meta('instagram'))) {
        $return .= '<li><a href="'.get_the_author_meta('instagram').'" title="Instagram" target="_blank" id="instagram"><i class="cfw-icon-instagram"></i></a></li>';
    }
    if(!empty(get_the_author_meta('dribbble'))) {
        $return .= '<li><a href="'.get_the_author_meta('dribbble').'" title="Dribbble" target="_blank" id="dribbble"><i class="cfw-icon-dribbble"></i></a></li>';
    }
    if(!empty(get_the_author_meta('behance'))) {
        $return .= '<li><a href="'.get_the_author_meta('behance').'" title="Behance" target="_blank" id="behance"><i class="cfw-icon-behance"></i></a></li>';
    }
    if(!empty(get_the_author_meta('skype'))) {
        $return .= '<li><a href="'.get_the_author_meta('skype').'" title="Skype" target="_blank" id="skype"><i class="cfw-icon-skype"></i></a></li>';
    }
    $return .= '</ul>';

    return $return;
}

Maintenant, tout ce que vous avez à faire est de placer cette fonction où vous voulez (content-single.php peut-être)

<div class="author-social-links">
    <?php echo cfw_get_user_social_links(); ?>
</div>

Bien sûr, vous pouvez utiliser davantage de phrases avec sursis pour masquer le tout quand aucun lien social n'est fourni pour aucun des champs.

Voici comment créer un shortcode à partir du code ci-dessus:

/*-----------------------------------------------------*/
/*  Author Social Links Shortcode (functions.php)
/*-----------------------------------------------------*/

add_shortcode( 'author-social-links', 'cfw_author_social_links_shortcode' );
/**
 * this the shortcode [author-social-links]
 */
function cfw_author_social_links_shortcode() {
    return cfw_get_user_social_links();
}
0
Hooman Askari