配置WordPress REST API自定义端点:文件存放位置咨询
解决WordPress REST API自定义端点文件不丢失的存放方案
嘿,这个问题挺常见的——确实,随便把自定义REST端点代码丢到主题目录或者官方REST API插件文件夹里,更新的时候肯定会被覆盖掉。给你几个靠谱的方案,按推荐程度排序:
1. 创建独立的自定义小插件(最推荐)
这是最安全、最灵活的方式,因为插件完全独立于主题和WordPress核心更新,而且你可以随时在后台启用/禁用它,方便调试。
具体步骤:
- 登录你的服务器,找到
wp-content/plugins/目录 - 新建一个文件夹,比如
my-custom-rest-endpoints - 在这个文件夹里创建一个主PHP文件,比如
my-custom-rest-endpoints.php - 在文件开头添加插件头部注释(让WordPress识别为插件),然后写入你的REST端点注册代码,示例如下:
<?php /** * Plugin Name: My Custom REST Endpoints * Description: 为我的站点添加自定义REST API端点 * Version: 1.0 * Author: 你的名字 */ // 注册自定义REST端点 add_action('rest_api_init', function () { register_rest_route('my-custom/v1', '/sample/', array( 'methods' => WP_REST_Server::READABLE, // 等价于GET请求 'callback' => 'my_custom_rest_sample_callback', // 注意:实际使用时请替换为合适的权限验证,不要用__return_true(除非是完全公开的接口) 'permission_callback' => function () { return current_user_can('edit_posts'); }, )); }); // 端点回调函数 function my_custom_rest_sample_callback($request) { return rest_ensure_response(array( 'status' => 'success', 'message' => '从自定义端点返回的数据', 'params' => $request->get_query_params() )); }
- 保存文件后,登录WordPress后台,在「插件」列表里找到这个插件并激活即可。
2. 使用Must-Use(MU)插件
MU插件是WordPress的“必须启用”插件,存放在wp-content/mu-plugins/目录下,不需要手动激活,只要文件存在就会自动加载。适合那些你希望始终生效、不需要禁用的功能。
具体步骤:
- 检查
wp-content/目录下是否有mu-plugins文件夹,如果没有就新建一个 - 在
mu-plugins里创建一个PHP文件,比如custom-rest-endpoints.php - 直接写入你的REST端点注册代码(可以不用插件头部注释,但加上更清晰)
- 保存后,WordPress会自动加载这个文件,无需激活。
⚠️ 注意:MU插件不能在后台禁用,所以一定要确保代码没有问题,否则可能影响站点运行。
3. 使用子主题(不推荐,除非你确定不会换主题)
如果你不想用插件,也可以把代码放在子主题里,这样父主题更新时不会覆盖子主题的文件。但缺点是如果换了主题,这些代码就会失效。
具体做法:
- 确保你正在使用子主题(如果没有,先创建一个)
- 可以直接把代码写在子主题的
functions.php里,或者新建一个专门的文件(比如inc/rest-endpoints.php),然后在functions.php里引入:
// 在子主题functions.php中引入自定义REST端点文件 require_once get_stylesheet_directory() . '/inc/rest-endpoints.php';
为什么不能放在你提到的位置?
- 当前主题目录:父主题更新时,所有文件都会被覆盖,你的自定义代码会丢失;即使是子主题,换主题后代码也会失效。
plugins/rest-api文件夹:这是官方REST API插件的目录,插件更新时会完全替换这个文件夹里的内容,你的代码肯定会丢。
内容的提问来源于stack exchange,提问作者Edvard Åkerberg
相关产品推荐
相关产品推荐

