一个紧凑、无依赖的 WordPress REST API 小片段重新实现——仅够服务一个公开文章集合,并在一次往返中执行多个子请求。适合用于教学 WordPress 路由、WP_Query 和 $wpdb 如何协同工作,而无需引入整个核心。
| 方法 | 路由 | 用途 |
|---|---|---|
GET | /wp-json/wp/v2/posts | 列出文章。支持 author_exclude、per_page。 |
POST | /wp-json/batch/v1 | 在一次请求中运行多个子请求。 |
这两个路由都是公开的(无需认证),与核心文章列表的默认设置一致。
index.php 前端控制器 / 路由
wp-includes/
functions.php absint / wp_parse_id_list / wp_parse_url
class-wpdb.php 轻量级 $wpdb(prepare / get_results)
class-wp-query.php 文章查询构建器
rest-api/
class-wp-rest-request.php
class-wp-rest-server.php 路由 + /batch/v1
endpoints/class-wp-rest-posts-controller.php /wp/v2/posts
php -S 127.0.0.1:8080
curl 'http://127.0.0.1:8080/wp-json/wp/v2/posts?author_exclude[]=3'
需要 PHP ≥ 8.0。MySQL 数据库是可选的——没有数据库时,$wpdb 将返回它本该执行的 SQL 语句,以便您查看生成的查询。