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

如何实现WordPress REST API读取ACF选项页字段的Endpoint

实现方案

ACF 选项页的字段默认存储在 WordPress 系统的 wp_options 数据表中,无需区分前端/后台运行环境,在 WordPress 正常初始化的场景下都可以直接读取,以下是不依赖第三方插件的实现步骤:

1. 注册自定义REST接口

使用 WordPress 原生的 rest_api_init 钩子注册专属的Endpoint,无需额外插件支持:

add_action( 'rest_api_init', function () {
    // 接口访问地址为:你的站点域名/wp-json/custom/v1/acf_option
    register_rest_route( 'custom/v1', '/acf_option', array(
        'methods' => 'GET',
        'callback' => 'get_custom_acf_option',
        // 公开访问可保留__return_true,敏感数据需自行修改权限逻辑
        'permission_callback' => '__return_true',
    ) );
} );

2. 实现字段读取回调逻辑

支持两种读取方式,可根据你的需求选择:

function get_custom_acf_option( $request ) {
    // 替换为你实际需要读取的ACF选项页字段名
    $target_field = 'your_field_name';

    // 方式1:使用ACF原生函数读取,会自动处理字段的格式化逻辑,推荐使用
    $field_value = get_field( $target_field, 'option' );

    // 方式2:不依赖ACF函数直接读取数据表,兼容性更强
    // $field_value = get_option( 'options_' . $target_field );

    if ( empty( $field_value ) ) {
        return new WP_Error( 'no_content', '目标字段无有效内容', array( 'status' => 404 ) );
    }

    // WordPress REST接口会自动将返回值转为JSON格式并设置正确响应头
    return [
        'code' => 200,
        'field_name' => $target_field,
        'field_value' => $field_value
    ];
}

注意事项

  • 上述代码可直接放置在你开发的插件主文件,或当前主题的functions.php中即可生效
  • 若你自定义了ACF选项页的专属slug,可先到数据库wp_options表中搜索option_name字段匹配%你的目标字段名%,确认实际存储的键名后再调整读取逻辑
  • 若字段涉及敏感数据,请勿直接设置permission_callback为__return_true,可改为仅管理员可访问的逻辑,示例如下:
'permission_callback' => function () {
    // 仅拥有后台管理权限的用户可访问接口
    return current_user_can( 'manage_options' );
}

内容的提问来源于stack exchange,提问作者xDE4DSH0Tx

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:42:00