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

如何通过查询字符串的unique_id参数查询fs_park自定义文章类型?

通过unique_id查询WordPress自定义文章类型fs_park

你的现有代码仅获取了unique_id参数,还需要添加查询逻辑来定位对应的fs_park自定义文章。以下是完整的实现方案:

完整的REST请求处理函数

function query_fs_park_by_unique_id(WP_REST_Request $request) {
    // 获取URL中的unique_id参数
    $unique_id = $request->get_param('unique_id');
    
    // 参数校验,避免空值查询
    if (empty($unique_id)) {
        return new WP_Error('missing_param', 'unique_id参数不能为空', array('status' => 400));
    }
    
    // 使用WP_Query查询对应文章
    $query = new WP_Query(array(
        'post_type'      => 'fs_park', // 指定自定义文章类型
        'post_status'    => 'publish', // 只查询已发布的文章
        'meta_key'       => 'unique_id', // 对应存储unique_id的*自定义字段*名
        'meta_value'     => $unique_id, // 匹配传入的unique_id值
        'posts_per_page' => 1, // 只返回一篇结果
        'no_found_rows'  => true, // 关闭分页计数,提升查询效率
    ));
    
    // 处理查询结果
    if ($query->have_posts()) {
        $post = $query->posts[0];
        // 可根据需求返回完整文章数据或自定义字段
        return rest_prepare_post($post, $request);
    } else {
        return new WP_Error('no_post_found', '未找到对应unique_id的fs_park文章', array('status' => 404));
    }
}

注册REST路由(如果尚未注册)

如果你的函数还没绑定到REST路由,需要添加以下代码来注册:

add_action('rest_api_init', function () {
    register_rest_route(
        'your-namespace/v1', // 自定义命名空间,可修改
        '/fs-park/', // 路由路径,可修改
        array(
            'methods' => WP_REST_Server::READABLE, // 允许GET请求
            'callback' => 'query_fs_park_by_unique_id',
        )
    );
});

关键说明

  • 确保unique_id是存储在文章的*自定义字段(post meta)*中,代码中的meta_key要和实际存储的字段名一致。
  • rest_prepare_post函数会将文章数据格式化为符合REST API规范的响应结构,包含文章的各类信息。
  • 添加了参数校验和错误处理,返回标准的HTTP状态码,方便前端处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 20:22:12