2012年03月28日 42条评论

WordPress: 获取某作者的文章数

2012.04.03 21:07 UpdateBolo说 count_user_posts($user_id) 这个好,the_author_posts() 也是调用 count_user_posts($user_id)。

2012.03.28 19:17 Update:彻底囧了,博友真强大,看我一发布此文章,独自流浪童鞋就给了我答案:the_author_posts(),那么这篇文章就没啥意义了,不过不删,保留囧记录。

---------------------------------------

不知道是我菜还是折腾晕了,我竟然找不到实现“获取某作者的文章数”的 WordPress 内置函数,因为急着要用,所以就自己山寨了一个函数……

记录一下,如果 WordPress 本身有这类函数实现的话,请知道的朋友评论告知。

函数名我用中国式英语“number of author's posts”来命名的:num_of_author_posts()

我使用 WP_Query() 函数来实现,方法很原始,用循环获取数量 - - 高手别鄙视我。

函数代码如下:(放在主题的 functions.php 文件里面)

/* number of author's posts by zwwooooo | zww.me */
 function num_of_author_posts($authorID=''){ //根据作者ID获取该作者的文章数量
     if ($authorID) {
         $author_query = new WP_Query( 'posts_per_page=-1&author='.$authorID );
         $i=0;
         while ($author_query->have_posts()) : $author_query->the_post(); ++$i; endwhile; wp_reset_postdata();
         return $i;
     }
     return false;
 }

调用方法

<?php echo num_of_author_posts($authorID); ?>

说明:$authorID 获取方法就很多了,各个页面获取方式不同,自行研究,一般就这几个函数 get_the_author_meta(), get_userdata() ... 具体去 WordPress 官方查看(直接在 Google 搜函数名就行了)

效果

WordPress: 获取某作者的文章数 by zwwooooo

折腾玩(完)。

zww
or
oooo

“WordPress: 获取某作者的文章数”有42条评论

  1. 1爱宝贝 says:

    呃...路过...

    1. zwwooooo says:

      @独自流浪
      囧~我竟然没找到,可能太急了,感谢提醒,文中已加。

  2. 不能吧 says:

    前排围观

  3. Louis Han says:

    只有一个作者,看总数就行了

    1. zwwooooo says:

      @Louis Han
      问题是对方就是多用户博客 。

  4. 我现在就一个作者,呵呵

    1. zwwooooo says:

      @软件盒子
      一个作者的就不用考虑了。

  5. airoschou says:

    请问在不同主题方法通吃吗? :sad:

    1. zwwooooo says:

      @airoschou
      这是函数,跟主题无关。

  6. Dick_Wu says:

    以前根据文章号判断z大起码谢了200篇文章。。后来发现原来不是从1#开始的。。

    1. zwwooooo says:

      @Dick_Wu
      我的ID都几万了,按照ID号你也应该判断为2万篇以上。况且我的文章也不止200多篇,现在都692篇了。

  7. keene says:

    willin kan 为啥关闭了,你懂得 :evil:

    1. zwwooooo says:

      @keene
      不懂,只知道他不玩wp了,谨此而已。

  8. 小白痴 says:

    看不懂了,看不懂

  9. 策划书 says:

    我就一个管理员 用不到了

  10. 一阵风 says:

    O(∩_∩)O哈哈~ 自己练练数据库也是不错的,the_author_posts()的实现方式也许就像你写的呢。。。

    1. zwwooooo says:

      @一阵风
      呵呵,我这方法囧了

  11. 咚门 says:

    现在用不着,以后搞不好又会百度到这。

    1. zwwooooo says:

      @咚门
      哈,有专门函数,我这文章囧了

  12. 星铃丹 says:

    哈哈哈哈,zww大叔也有囧的时候

    1. zwwooooo says:

      @星铃丹
      人嘛,谁没囧过?

  13. 回复框好个性啊。。。。。

  14. suN says:

    一个作者撸过 :eek: :eek:

    1. zwwooooo says:

      @suN
      撸好~

  15. 这个很好 :mrgreen:

    1. zwwooooo says:

      @漏网小鱼
      有专门函数,Orz

  16. huangjun says:

    看了第一行后,觉得你折腾的精神值得学习 :lol:

    1. zwwooooo says:

      @huangjun
      哈哈,折腾后才发现有更方便的方法

  17. Bolo says:

    这个方法效率比较低,而且比较耗内存,在某些情况下还会影响后面的程序。用count_user_posts($user_id)吧

    1. zwwooooo says:

      @Bolo
      the_author_posts()呢?

    2. Bolo says:

      @zwwooooo
      the_author_posts() 实际上就是返回count_user_posts($user_id)的结果

  18. JamieSoung says:

    好吧~~wp强大的函数。
    话说右边的留言框里的百度广告...有些...你看了就知道了。

    1. zwwooooo says:

      @JamieSoung
      忽视吧,我是避免重复加载而已。

发表评论

昵称 *

网址

B em del U Link Code Quote