讲师中心 微信公众号
AI工具推荐 视频效率加速

WordPress 中随机显示 20 名订阅用户头像的完整实现方法

胖涛君_7668

胖涛君_7668

发布时间:2026-01-29 22:33:02

|

1013人浏览过

|

来源于php中文网

原创

WordPress 中随机显示 20 名订阅用户头像的完整实现方法

本文详解如何在 wordpress 网站中不按注册顺序、而是真正随机选取并展示 20 名订阅用户(subscriber)的头像,避免使用 `posts_per_page` 或 `orderby=rand` 的常见误区,提供高效、可靠、可复用的两步查询方案。

在 WordPress 开发中,若需「随机展示指定数量的用户」(如首页轮播 20 位订阅者头像),直接在 get_users() 中设置 'orderby' => 'rand' 并不可靠——该参数自 WordPress 4.7+ 起已被弃用且无效;而仅靠 'posts_per_page' => 20 配合 'orderby' => 'user_nicename' 则只会返回排序后前 20 名用户,并非随机。

正确做法是采用两阶段查询策略:先获取全部订阅用户 ID,再从中随机抽取 20 个,最后根据这些 ID 精确拉取用户数据。该方式兼顾性能与准确性,尤其适合中小型站点(用户数 ≤ 数万时毫秒级响应)。

以下是完整、可直接部署的 PHP 实现:

word报告自动生成神器
word报告自动生成神器

Word报告自动生成神器。自动生成专业Word文档报告,支持模板填充、目录生成、表格/图表插入、页眉页脚、多级标题、样式主题、批量邮件合并。当用户需要生成Word报告、创建合同文档、批量生成通知/证书、填充Word模板、制作商业计划书时触发。

下载
<?php
// 第一步:仅获取所有订阅用户的 ID(轻量高效)
$args_ids = array(
    'role'   => 'subscriber',
    'fields' => 'ID', // 关键:只查 ID,减少数据库负载
);
$user_ids = get_users($args_ids);

// 第二步:从 ID 数组中随机抽取 20 个(注意:若总订阅用户 < 20,array_rand 会触发警告)
if (count($user_ids) >= 20) {
    $random_ids = array_rand($user_ids, 20);
} else {
    // 容错:用户不足 20 时,返回全部
    $random_ids = array_keys($user_ids);
}

// 第三步:根据随机 ID 获取完整用户对象(含邮箱、昵称等)
$args_users = array(
    'include' => $random_ids, // 精确指定 ID 列表
    'orderby' => 'user_nicename',
    'order'   => 'ASC',
);
$random_users = get_users($args_users);
?>

<ul class="user-list">
<?php foreach ($random_users as $user): ?>
    <li><?php echo get_avatar($user->user_email, 96); ?></li>
<?php endforeach; ?>
</ul>

✅ 关键优势说明:

  • ✅ 真正随机:array_rand() 在 PHP 层完成随机采样,结果稳定可预期;
  • ✅ 性能友好:首查仅取 ID,避免加载冗余字段;二次查询 ID 数量固定(≤20),极快;
  • ✅ 兼容性强:适配 WordPress 5.0+ 及主流 PHP 版本(7.4+ 推荐);
  • ✅ 健壮容错:主动判断用户总数,防止 array_rand() 在小数据集下报错。

⚠️ 注意事项:

  • 若网站订阅用户极少(如 < 5 人),建议搭配缓存(如 wp_cache_set/get)避免高频重复查询;
  • 如需支持分页或 AJAX 动态刷新,应将 $random_ids 存入 session 或 transient,并设置合理过期时间(如 15 * MINUTE_IN_SECONDS);
  • get_avatar() 默认依赖邮箱哈希,确保 $user->user_email 不为空——可在循环内加空值校验:!empty($user->user_email) ? get_avatar(...) : ''。

通过此方案,你将获得一个稳定、可维护、符合 WordPress 最佳实践的随机用户展示模块。

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

相关专题

更多
ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2980

2023.06.14

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

360

2023.08.31

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2813

2023.11.15

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1161

2024.09.24

session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

580

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

876

2023.10.18

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

1906

2025.08.19

wordpress seo
wordpress seo

WordPress网站SEO优化方法有:1、选择一个SEO友好的主题,具有清晰的代码结构,快速的加载速度和响应式设计;2、使用SEO插件,优化你的标题标签,元描述,关键字,XML站点地图等;3、优化你的内容,内容是SEO优化的核心;4、优化你的网站速度;5、创建友好的URL;6、使用内部链接;7、优化图像;8、使用社交媒体;9、定期更新你的网站;10、监控和分析你的网站等等。

5815

2023.09.18

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn