主机格调

最近在帮公司做技术博客主题(WordPress平台),第一次做这么优秀的交互设计师和视觉设计师出的博客主题UI稿,很是激动。因为公司的交互、视觉都是非常专业的,薪资比我高很多,只能抬头仰望啊!

关注不同领域的人在一起合作,一定会擦出不一样的火花!例如设计师想在首页展示一个作者墙,看了交互稿和UI稿后,这里会展示所有作者的信息,包括作者头像、昵称、个人说明、作者文章列表链接。

我没做过,就搜索。搜索出来的结果,基本上都是说wp_list_authors(作者列表)这个函数。我试了一下,这个函数只能简单的输入作者昵称、文章列表链接、文章数等链接,满足不了我的需求。然后Google搜英文关键字,居然找到一段代码基本满足我的需求,可以显示头像、昵称、个人说明,甚至我之前写的《完美实现WordPress自定义增加删除个人资料并且展示文章页》所有自定义字段都可以显示出来,真是太好了。所以看下面的代码之前,最好能复习下我上面那篇文章,不然有的代码会看不懂。

把下面一段代码,复制到index.php你需要的地方:

<ul>
<?php
global $wpdb;
//所有作者
$authors = $wpdb->get_results("SELECT ID, user_login from $wpdb->users ORDER BY display_name");
//除了admin外的作者
//$authors = $wpdb->get_results("SELECT ID, user_login from $wpdb->users WHERE user_login <> 'admin' ORDER BY display_name");
foreach ($authors as $author) {
//修改过固定链接
echo "<li><p><a href='".get_bloginfo('url')."/author/".get_the_author_meta('user_login', $author->ID)."'>".get_avatar($author->ID,50)."</a></p>";
//默认链接
//echo "<li><p><a href='".get_bloginfo('url')."?author=".$author->ID."'>".get_avatar($author->ID,50)."</a></p>";

//作者昵称
the_author_meta('display_name', $author->ID);
//个人网站
if(get_the_author_meta('url', $author->ID)){
echo "<p><a href='".get_the_author_meta('url', $author->ID)."'>个人网站</a></p>";
}
//新浪微博
if(get_the_author_meta('weibo_sina', $author->ID)){
echo "<p><a href='".get_the_author_meta('weibo_sina', $author->ID)."'>新浪微博</a></p>";
}
//腾讯微博
if(get_the_author_meta('weibo_tx', $author->ID)){
echo "<p><a href='".get_the_author_meta('weibo_tx', $author->ID)."'>腾讯微博</a></p>";
}
//个人说明
if(get_the_author_meta('description', $author->ID)){
echo get_the_author_meta('description', $author->ID);
}
echo "</li>";
}
?>
</ul>

代码里面有我加的html标签,你要用的话,一定要根据自己的结构来修改标签。下图是没有样式的结果,符合我的要求:

效果图

其中第一大段注释,表示是否需要显示管理员。这里有个缺点,排序是按照昵称名的顺序来排列的。因为只查询了wp_users一张表,表里没有作者发表文章数量,所以比较局限。

foreach里的一大段注释,是作者文章列表链接的两种方式。因为这个循环没法直接输入这个链接,只能靠拼接了。

为什么我要把个人站点和微博等信息也输入来呢?其实我这个需求里是没有用到的。这里是提示大家,如果要做个专门的作者详细资料列表页面,里面就可以用到这些信息了,靠大家发散思维啦!

如果哪位高手会联合表查询,查到作者发表的文章数等信息,欢迎联系我改进哈!

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