因为朋友的主题是多作者,他需要一个在文章页展示作者名片(个人资料)的功能,所以就搜索了一下相关文章。还算顺利,搜到几篇,但一直没有达到我想要的完美效果。经过询问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代码会存在一个致命的弱点。因为他代码只输出文本框里填写的内容,比如一个新浪微博的超级链接。如果你是主题制作者,你要在页面上输出新浪微博的链接,你肯定会写一个a标签,然后href里插入上面代码:
新浪微博
但实际使用中,不可能每个作者都有新浪微博,所以有的人这里没有填写是空的。而到了页面上,“新浪微博”四个字还在,但是href里是空的,这就非常不友好了。所以要做个判断。
新浪微博"; ?>
这里把之前的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
这个不错,不过很少有人注册,也很少有人开放注册,就算开放也没几个注册。
不错,先收藏了。像我这种单人博客,又追求简单粗暴,估计就直接HTML写在文章后面了。哈哈。
技术文章啊,折腾wp、很费时间和精力
可惜我用Emlog啦 😉
😈 代码盲表示用的42区插件~~还可以请作者吃饭哟。求人请吃饭。
42区插件是啥?
西门技术流~php完全看不懂e 🙁
博主的文章很不错,经常来光顾。希望能看到更好的文章。欢迎回访!
哇哇。不过现在好像暂时用不到这个。学习了。 🙄
其实这个完全可以用简单的HTML实现的,我一直就是这样弄的
因为你博客是你一个人写,所以无所谓。但是我朋友的网站是多个作者,就不行了。
😈 马克马克,有见地
技术流,mark一下,以后可能用的到
西门写老多经典WordPress代码了,哈哈 😀
我也是个半吊子PHP 不是很懂为何要这么写,改成这样不行么
<?php
if (get_the_author_meta('weibo_sina')){
echo "<a href=\" . get_the_author_meta('weibo_sina') . \" target=\"_blank\">新浪微博</a>";
?>
echo的几个转义还没仔细看过调试,应该是都要转吧? 感觉这样干净些 不过都是一个结果~ 嘿嘿
我给你个不专业的PHP回答 😈
PHP输出双引号里面,要么改用单引号,用么用斜杠转。 😆
我可不保证我说的是正确的哟! 😈
😆 其实我们挺专业的是吧 😳 昨晚第一次写CSS 本来想问您float在ie下的一些问题,但是看上去我好像解决了的样子:idea:
推荐一篇很好的文章《清理浮动的全家》http://www.twinsenliang.net/skill/20090413.html
😈
🙄 很详细! 自己动完了手再来看 印象很深
看起来很厉害的样子啊。
有耐心+善折腾=good good! ❗
不错。。。。。
学习学习!
灰常NICE~ ❗
改天改一下, 哈哈.
不错。。。经典!
这篇很实用
技术篇!暂时用不上
今天找了很久,终于找到这了
希望能解决你的问题
不错,收藏
这个不错嘛,改开给加进新皮里
这样好的文章果然还是要用谷歌来搜索