我需要在单篇文章页面的侧栏中显示一些小作者统计数据。我正在使用PHP代码小部件,以允许我将PHP代码插入到小部件中。我所做的是在侧栏中运行一个循环,如下所示:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<ul>
<li>
<?php echo \'Posts made: \' . get_usernumposts(4); ?>
<p>
Author Rank: <?php the_author_meta(\'user_level\'); ?>
<br>
Author\'s Name: <?php the_author_meta(\'display_name\'); ?>
<br>
User ID: <?php the_author_meta(\'ID\'); ?>
</p>
</li>
<?php endwhile; else: ?>
<p><?php _e(\'No posts by this author.\'); ?></p>
<?php endif; ?>
因此,这显示了作者ID“4”的用户帖子数。是的,尽管该函数已被弃用,但它仍能正常工作。
我显然需要一些更动态的东西,因为作者数据在每篇文章中都有所不同,所以静态ID不会起作用。我不知道为什么
<?php the_author_meta(\'post_count\'); ?>
我想那太方便了。我见过很多以各种方式选择帖子计数的查询,所有这些查询要么不是我所需要的,要么不适用于侧边栏中的循环。
虽然我不是PHP专家,但我的第一个想法是为usernumposts的值分配一个变量,从
<?php the_author_meta(\'ID\'); ?>
我不知道这是否可能,但它肯定会实现我的目标。那么这能做到吗?怎样如果没有,我还有什么其他选择?
谢谢
最合适的回答,由SO网友:Lynne 整理而成
要获取某个用户发布的帖子数量,我发现解决方案是调用count_user_posts()
, 传入适当的用户id。
<?php echo \'Posts made: \' . count_user_posts( get_the_author_meta(\'ID\') ); ?>
以可翻译的形式。
<?php printf( \'Posts made: %d\', count_user_posts( get_the_author_meta(\'ID\') ) ); ?>
变量中的存储。
<?php $user_post_count = count_user_posts( get_the_author_meta(\'ID\') ); ?>