Author bio Social Links

时间:2012-12-13 作者:Maan

我使用简单的代码在作者简历中显示用户的社交链接。in 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);
?>

in single.php

   <a href="<?php the_author_meta(\'twitter\'); ?>" title="Twitter" target="_blank" id="twitter"><img src="/images/twitter.png" alt="Twitter" /></a>
那么,当用户配置文件中的字段为空时,我如何在作者简历中隐藏社交链接呢。

请帮帮我。。。

2 个回复
最合适的回答,由SO网友:M-R 整理而成

在使用打印链接之前,需要检查字段是否为空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 } ?>
或者,试试看

<?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 } ?>
但是,由于某些原因,遵循代码修复了它

<?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 } ?>

SO网友:Hooman Askari

这是一种复杂的方法,可以创建社交链接,然后使用一个简单的函数将其检索回需要的位置。您也可以使用此函数创建短代码。(我从我的一个项目中复制了代码,因此如果愿意,您可能希望更改一些类前缀)。

    /*-----------------------------------------------------------*/
    /*   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;
}
现在,您所需要做的就是将此函数放到您想要的地方(content-single.php可能)

<div class="author-social-links">
    <?php echo cfw_get_user_social_links(); ?>
</div>
当然,如果没有为任何字段提供社交链接,您可以扩展条件句的使用来隐藏整个字段。

下面是如何从上面的代码创建一个短代码:

/*-----------------------------------------------------*/
/*  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();
}

结束

相关推荐

Exclude Author by ID

如何从中排除按ID列出的作者:<?php //displays all users with their avatar and their posts (titles) $blogusers = get_users_of_blog(); if ($blogusers) { foreach ($blogusers as $bloguser) { echo \'<div class=\"content-slider-body\">\';&#