在开发 WordPress 主题时,我们经常需要获取站点的各类统计信息,例如:全站文章数量、评论数量、标签数量、分类数量、页面数量等。这些数据对于展示站点概况或构建统计小工具非常有用。
本文将整理一系列常用的 WordPress 统计代码,方便开发者直接使用。
常用站点统计代码
1. 全站已发布文章总数
<?php
$count_posts = wp_count_posts();
echo $count_posts->publish;
?>
说明: wp_count_posts() 返回一个对象,其中 ->publish 属性即为已发布文章的数量。
2. 全站评论总数
<?php
echo get_comments_number(); // 推荐方法
// 或使用数据库查询(需全局 $wpdb)
// global $wpdb;
// echo $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '1'");
?>
说明: 推荐使用 WordPress 内置函数 get_comments_number(),它更安全且考虑了缓存。若需所有评论(含待审核),可使用数据库查询。
3. 全站标签总数
<?php
$tags = wp_count_terms('post_tag');
echo (is_wp_error($tags)) ? 0 : $tags;
?>
说明: 使用 wp_count_terms() 并检查返回值是否为 WP_Error 对象,以提高代码健壮性。
4. 全站分类总数
<?php
$categories = wp_count_terms('category');
echo (is_wp_error($categories)) ? 0 : $categories;
?>
5. 全站已发布页面总数
<?php
$count_pages = wp_count_posts('page');
echo $count_pages->publish;
?>
6. 全站用户总数
<?php
$user_count = count_users();
echo $user_count['total_users'];
?>
说明: count_users() 函数返回一个数组,其中 total_users 键即为用户总数。
7. 站点运行天数
<?php
// 请将 '2020-01-01' 替换为你的站点实际开始日期
$start_date = strtotime('2020-01-01');
$days = floor((time() - $start_date) / 86400);
echo $days;
?>
说明: 计算从指定开始日期到当前时间所经过的天数。
8. 站点最后更新时间
<?php
$last_modified = get_lastpostmodified('blog');
echo $last_modified ? date('Y-m-d', strtotime($last_modified)) : '暂无更新';
?>
说明: 使用 get_lastpostmodified() 函数获取站点文章或页面的最后修改时间,更为可靠。
9. 友情链接总数(仅限链接管理器启用时)
<?php
// 需要链接管理器功能(默认未启用)
global $wpdb;
$link_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = 'Y'");
echo $link_count;
?>
说明: 此功能依赖于已启用的“链接管理器”(在“仪表盘 -> 链接”中管理)。
进阶统计示例
获取指定分类下的文章数量
<?php
$category_id = 5; // 将 5 替换为目标分类的 ID
$category = get_category($category_id);
if ($category) {
echo $category->count;
}
?>
获取自定义文章类型(CPT)的文章数量
<?php
$post_type = 'product'; // 将 'product' 替换为你的自定义文章类型名称
$count = wp_count_posts($post_type);
echo $count->publish;
?>
使用建议
1. 在主题文件中直接使用这些代码片段时,请确保它们位于 PHP 标签 <?php ... ?> 内。
2. 对于频繁调用的统计,建议结合 WordPress 的 Transients API 进行缓存,以提升性能。
3. 部分统计(如用户数)也可通过 wp-admin 后台的“仪表盘”查看。
通过以上代码,你可以轻松地将各种统计信息集成到你的 WordPress 主题或插件中。