WordPress 使用 wp_count_posts() 函数快速获取文章数量

还记得之前想要获取 wordpress 站点的所有文章总数统计网上的教程,以及在某些地方的使用也都是直接使用 SQL 语句直接查询数据来做总数统计,现在相信还真的是费时费力,原因就是不知道 wordpress 还有 wp_count_posts()这样一个函数,具体是哪个版本出来就懒得去看了,反正随时都保持 wordpress 最新版。

其实在很多的 wordpress 主题上都会有一个统计或者文章归档的页面,就需要统计一些 wordpress 站点上已经发布多少文章了,以此来展示自己的站点或者给自己一个统计,当然我们在开发某些特别的功能或者逻辑计算时也可能会用到,昨天就开发一个插件的时候就多次用到了,不想再去写 SQL 来统计,费时费力并且 wordpress 本身就有的功能为什么就不好好利用呢,果断就想起了 wp_count_posts 函数。

wp_count_posts 函数是在 wordpress 中用来统计文章数量的函数,可以统计的类型有文章(post)和页面(page)。并且能够直接统计出文章各个不同状态的数据,使用起来非常的便捷,两行代码即可搞定。

//获取文章数量
$postcount = wp_count_posts();
//获取页面数量
$pagecount = wp_count_posts('page');

默认是获取的 post 文章类型的,当然如果是自定义类型应该也是可以支持的,这个目前没有测试,不过相信 wordpress 是绝对考虑到了兼容性的,值得注意的是,上面说过了是两行代码,所以上面的例子并不能直接输出,因为 wp_count_posts 函数返回的是一个对象数据,如下。

// wordpress wp_count_posts 函数返回值
stdClass Object
(
    [publish] => 11	//已发布
    [future] => 0	//定时发布
    [draft] => 0	//草稿
    [pending] => 0	//待审
    [private] => 0	//私有
    [trash] => 0	//垃圾箱
    [auto-draft] => 34	//自动草稿
    [inherit] => 0	//修订版本
    [request-pending] => 0
    [request-confirmed] => 0
    [request-failed] => 0
    [request-completed] => 0
)

所以,获取已发布状态文章的完整统计代码如下:

//wordpress 已发布文章数量
$count_posts = wp_count_posts();  
$publish_posts = $count_posts-publish;

其它的就举一反三,相信也都能看得懂了,就不再过多的赘述。最后在补充一点,有时候我们可能喜欢代码的简单性,所以在写法上面就比较大胆,没有怎么考虑兼容性,一行代码就能搞定,所以在不考虑兼容性的情况下还有以下的一种写法:

//wordpress 已发布文章数量,不兼容 PHP5.4 以前
$publish_posts = wp_count_posts()->publish;

比较喜欢用吧,不过使用这种写法请一定保证你的 PHP 版本在 5.4 以上即可正常运行。

本文链接:https://www.abcziyuan.com/wordpress-wp_count_posts.html

开通VIP会员
分享到: 生成海报
免责声明1. 本站所有资源来源于用户上传和网络,均不允许转载,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 如发现会员转载本站资源文章,本站有权封禁会员账号!
4. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
5. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
6. 如有链接无法下载、失效或广告,请联系管理员处理!
7. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
8. 如遇到加密压缩包,默认解压密码为"www.abcziyuan.com",如遇到无法解压的请联系管理员!
开通VIP会员
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活