主机格调

因为朋友的主题是多作者,他需要一个在文章页展示作者名片(个人资料)的功能,所以就搜索了一下相关文章。还算顺利,搜到几篇,但一直没有达到我想要的完美效果。经过询问PHP以及函数,终于搞定了这个问题。(至少Google里绝对搜不到我这么完美的方法)

先说一下要做的效果。首先是每个会员都会在后台有“我的资料”一栏,我相信这里很少人会用,因为都不是国内不常用的。所以现在要把不常用的删掉,改成常用的新浪微博、腾讯微博等。

个人资料

下面是核心代码,加到主题文件夹functions.php里:

//设置个人资料相关选项
function my_profile( $contactmethods ) {
	$contactmethods['weibo_sina'] = '新浪微博';   //增加
	$contactmethods['weibo_tx'] = '腾讯微博';
	unset($contactmethods['aim']);   //删除
	unset($contactmethods['yim']);
	unset($contactmethods['jabber']);
	return $contactmethods;
}
add_filter('user_contactmethods','my_profile');

这个时候仅仅只是在后台有填写的文本框,实际上一点用都没!我们要的效果是在每篇文章里展示出来,所以要把数据都输出到页面上。

普通版:在single.php你觉得合适的位置加代码:

<?php the_author_meta('weibo_sina'); ?>

以上是我在网上搜到的资料。如果就这么一点东西,我也不会写这篇文章了。下面是搜索不到的代码。

完美版:以上一段PHP代码会存在一个致命的弱点。因为他代码只输出文本框里填写的内容,比如一个新浪微博的超级链接。如果你是主题制作者,你要在页面上输出新浪微博的链接,你肯定会写一个a标签,然后href里插入上面代码:

<a href="<?php the_author_meta('weibo_sina'); ?>" target="_blank">新浪微博</a>

但实际使用中,不可能每个作者都有新浪微博,所以有的人这里没有填写是空的。而到了页面上,“新浪微博”四个字还在,但是href里是空的,这就非常不友好了。所以要做个判断。

<?php if (get_the_author_meta('weibo_sina')!=""){ ?>
<?php echo "<a href='" . get_the_author_meta('weibo_sina') . "' target='_blank'>新浪微博</a>"; ?>
<?php } ?>

这里把之前的the_author_meta()换成了get_the_author_meta()来做判断非空,是因为zww告诉我the_author_meta()是直接输出,而get_the_author_meta()是有返回值,所以可以作为判断的条件。这是我试了好久都不成功的原因啊!(20130810注:the_是带echo输出,所以无法判断;get_the_是原始值,所以可以判断,输入需要加echo)

以上一小段PHP是我写的,我不懂PHP,有不对的地方欢迎大家批评指正。我只知道,我要的效果确实达到了!(个人资料项不为空时,正常输出;个人资料项为空时,不输出文字超链接)

个人资料

具体CSS还没写,但是数据都取出来了。我取了4个,分别是作者头像、作者个人说明、作者新浪微博、作者腾讯微博。自己去扩展吧。

感谢zww的指点;
用到的文章:
http://wange.im/diy-profile-in-wordpress.html
http://codex.wordpress.org/Function_Reference/the_author_meta
http://codex.wordpress.org/Function_Reference/get_the_author_meta

>>原创文章,欢迎转载。转载请注明:转载自西门的后花园,谢谢!
>>原文链接地址:http://ons.me/378.html