You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:08:57