WordPress 7.2 会新增一个默认开启的随机内容入口:访问 你的域名/random/,WordPress 从已发布的文章里随机挑一篇,用 302 跳转过去。它不会产生新的可索引页面,跳转本身带 noindex 和禁止缓存的响应头,对 SEO 的直接影响很小;每次访问会跑一条 ORDER BY RAND() 查询,几百上千篇文章的站基本无感,文章量很大的站要先测。不想要的话,一个过滤器就能整体关掉。注意 7.2 还没正式发布:按官方日程,RC1 在 11 月 17 日,正式版计划 12 月 8 日发布,下文依据 11 月 5 日的开发说明和 11 月 12 日读取的开发版源码,正式版细节仍可能调整。

/random/ 到底会做什么
随机入口挂在现有的归档路径前面。用默认前缀、并且开启了固定链接(伪静态)时,会生成这几类规则:
| 访问地址 | 跳到哪里 |
|---|---|
/random/ |
随机一篇已发布的文章 |
/random/category/分类别名/ |
该分类下随机一篇 |
/random/tag/标签别名/ |
该标签下随机一篇(其他公开分类法同理) |
/random/author/作者名/ |
该作者的随机一篇 |
/random/文章类型/ |
某个可随机的自定义文章类型里随机一篇 |
源码里还有几条值得知道的边界:
- 只挑 已发布、没有密码保护 的内容,草稿、私密文章和加密文章不会被选中。
- 只响应 GET 和 HEAD 请求;单篇页面和 Feed 不算随机请求。
- 归档里一篇可选的都没有时,返回 404。
- 搜索结果也能随机,形式是
?s=关键词&random。 - 如果站里已经有一个发布在
/random/的页面,或者文章固定链接是/%postname%/而恰好有篇文章别名叫 random,那这个页面或文章优先,随机入口让路。
「random」这个前缀可以在「设置 → 固定链接」里改,而且是可翻译的字符串。中文站升级后,建议先去固定链接页看一眼实际前缀是什么,别默认它一定叫 random。

哪些内容会被随机到:randomable 规则
7.2 给 register_post_type() 加了一个 randomable 参数。没有显式设置时,规则是:文章类型同时满足 publicly_queryable(前台可查询)和设置了 has_archive(有归档页),才默认可随机。内置类型里,文章(post)可随机,页面(page)和附件(attachment)不可以。
分类法跟着文章类型走:只有挂在可随机文章类型上的分类法,才会生成 /random/分类法/... 这样的规则。
这条规则对用自定义文章类型的主题影响最大。拿 WarpNav 自己举例,它用 OneNav 主题,网址(sites)、软件(app)、书籍(book)都是自定义文章类型。11 月 12 日从站点公开的 REST 接口 /wp/v2/types 读到,这三个类型的 has_archive 都是 false,「网址分类」「软件分类」这些分类法也只挂在各自的类型上。照 7.2 的默认规则推算,升级后 WarpNav 的 /random/ 只会在普通文章里挑,网址、软件和书籍不会被随机到。这是按规则推出来的结论,主题以后如果给这些类型显式设置 randomable,或者改了归档设置,结果就会变,正式版上线后还要实测确认。
你的站也可以这样查。没装 7.2 时先看接口:
curl -s "https://example.com/?rest_route=/wp/v2/types" | python3 -m json.tool | grep -E '"slug"|has_archive'
has_archive 为 true(或是一个字符串)的公开类型,在 7.2 里默认就会进随机池。装好 7.2 测试版以后,可以直接问 WordPress:
wp eval 'print_r( get_post_types( array( "randomable" => true ) ) );'
wp rewrite list | grep random
第一条列出可随机的文章类型,第二条看实际生成了哪些随机规则。
性能:一次跳转一条 ORDER BY RAND()
随机文章是由主查询选出来的。访问 /random/ 时,WordPress 临时挂上三个回调:把查询限制在可随机的已发布内容里,排序改成 RAND(),结果限定 1 条,然后 302 跳过去。为了减轻开销,这条查询关掉了总数统计,也不预加载文章元数据和分类缓存。
ORDER BY RAND() 的问题是数据库要给所有候选行都算一个随机值再排序,候选越多越慢。几百、几千篇文章的站基本感觉不到。几十万篇文章的大站,或者 pre_get_posts 里有复杂条件的站,最好在测试环境用真实数据量压一下。开发说明的评论区也有人问到这一点,官方说明里没有给出通用的性能数据。
还有一个容易忽略的点:跳转响应带了禁止缓存的头,页面缓存插件和 CDN 一般不会缓存它,每次访问都会落到 PHP 和数据库。如果有爬虫或恶意请求反复刷 /random/,压力会直接打到源站。担心这一点的,可以在 CDN 或 Web 服务器层对这个路径限速,或者干脆关掉功能。

SEO:会不会被收录、会不会分走权重
从源码看,跳转前会先发禁止缓存的响应头,再加一行 X-Robots-Tag: noindex, follow,然后用 302(临时跳转)送到随机挑中的那篇文章。所以:
/random/这个地址本身不该被收录,搜索引擎跟着跳过去,看到的是原本就存在的文章页。- 没有生成新内容,也就不存在重复内容的问题。302 不会把
/random/当成某篇文章的永久地址。 - 统计上会有点乱:点击
/random/的那一下看不出最后去了哪篇,只能从下一次页面浏览里看到落地页;会执行 JavaScript 的爬虫跟着跳转后,会被记成某篇文章的浏览。
对大多数内容站来说,SEO 上可以放心。真正需要考虑的是:你愿不愿意让访客随机看到老文章。有些过时的教程,被随机推到读者面前反而不是好事。
要不要关,怎么关
按站点类型大致可以这样判断:
- 博客、资讯站、文章多的站:可以留着,甚至在页脚或侧栏放个「随便看看」链接到
/random/,零成本多一个找旧文的入口。 - 企业官网、落地页为主、文章很少的站:用处不大,可以关。
- 有大量过时内容、或者文章量非常大的站:要么关掉,要么排除掉不想被随机到的分类。
整体关闭
在 wp-content/mu-plugins/ 下新建一个 PHP 文件(比如 disable-random.php):
<?php
add_filter( 'wp_enable_random_content_redirect', '__return_false' );
用 mu-plugin 是因为它不会被误停用,也不依赖主题。关掉后不再生成随机规则,固定链接页的前缀设置会隐藏,random 查询参数也会被忽略。改了这个过滤器的返回值后要刷新一次重写规则:到「设置 → 固定链接」直接点保存,或者跑 wp rewrite flush。
只排除某个分类
随机选文走的是主查询,所以已有的 pre_get_posts 回调也会作用到它。只想影响随机请求,就先用 wp_is_random_content_query() 判断:
add_action( 'pre_get_posts', static function ( WP_Query $query ) {
if ( wp_is_random_content_query( $query ) ) {
$query->set( 'category__not_in', array( 123 ) ); // 换成你的分类 ID
}
} );
把某个自定义文章类型排除在外
自己注册的类型,直接在 register_post_type() 里加 'randomable' => false。主题或插件注册的类型改不了源码,可以用 WordPress 早就有的 register_post_type_args 过滤器改参数:
add_filter( 'register_post_type_args', static function ( $args, $post_type ) {
if ( 'sites' === $post_type ) { // 换成要排除的类型
$args['randomable'] = false;
}
return $args;
}, 10, 2 );
像 WarpNav 这种自定义类型本来就没开归档的站,现在不需要加;主题以后改了归档设置,再加也来得及。
升级前在测试站跑一遍
7.2 正式版之前,可以用 WordPress Beta Tester 插件或官方提供的测试版 ZIP,在测试站装上 Beta 或 RC,按这个顺序检查:
- 访问
/random/,确认是 302 跳到某篇文章,响应头里有X-Robots-Tag: noindex, follow。 - 去「设置 → 固定链接」看前缀叫什么,有没有和现有页面、文章别名撞车。
- 用上面的
wp eval和wp rewrite list看哪些文章类型、分类法进了随机池,是不是你想要的。 - 文章量大的站,用真实数据量压测几次
/random/的响应时间。 - 决定关不关,需要关就把 mu-plugin 准备好,升级当天一起上线。
同一时期 WordPress 刚修过一个升级过程中的远程代码执行漏洞,升 7.2 之前,最好先确认站点已经在 7.1.4,升级前的防护做法见 WordPress CVE-2026-119977:升级到 7.1.4 前先封住 wp-content/upgrade。大版本升级的备份、插件兼容和回滚,可以参考 WordPress 7.1 升级避坑指南。WordPress 本身的介绍和下载入口见 WarpNav 的 WordPress 条目。
资料来源
原始资料(核对日期:2026 年 11 月 12 日):
- WordPress 开发说明 Your Content Is Going To Get More Random!(2026 年 11 月 5 日):https://make.wordpress.org/core/2026/11/05/your-content-is-going-to-get-more-random/
- WordPress 7.2 开发日程(2026 年 11 月 10 日更新):https://make.wordpress.org/core/7-2/
- WordPress 开发版源码 class-wp.php、query.php、class-wp-post-type.php(2026 年 11 月 12 日读取 trunk):https://github.com/WordPress/wordpress-develop/tree/trunk/src/wp-includes
- 相关工单 #64498:https://core.trac.wordpress.org/ticket/64498
- WP Gazette,WordPress random content endpoint arrives in version 7.2(2026 年 11 月 6 日):https://wpgazette.com/core-releases/wordpress-random-content-endpoint/