当前位置: 首页 > 知识库问答 >
问题:

自定义帖子类型REST API自定义endpoint,用于按ID的单个帖子

公良云
2023-03-14

我创建了一个WordPress自定义帖子类型,然后我创建了REST API自定义endpoint以获取所有帖子运行良好。然后我创建了另一个自定义endpoint以按ID获取单个帖子。例如http://localhost:8888/wordpress/wp-json/lc/v1/cars/120

我已经创建了一些帖子,每次我将路线末端的ID更改为118或116时,它都会显示最新的post-ID 120的相同数据。我需要相关的数据来显示基于职位ID,我会感谢任何形式的帮助。谢谢

public function rest_posts_endpoints(){

register_rest_route( 
        'lc/v1',
        '/cars/(?P<id>\d+)',
        [
            'method' => 'GET', 
            'callback' => [$this, 'rest_endpoint_handler_single'], 
        ]
    );
}

public function rest_endpoint_handler_single($id) { 

    $args = [
         'post_type' => 'cars',
         'id' => $id['id'],
    ];

    $post = get_posts($args);

        $data['id'] = $post[0]->ID;
        $data['slug'] = $post[0]->post_name;
        $data['title'] = $post[0]->post_title;
        $data['content'] = $post[0]->post_content;
        $data['excerpt'] = $post[0]->post_excerpt;

    return $data;
}

共有1个答案

彭鸿彩
2023-03-14

请使用WP_REST_Request $request使参数通过。

public function rest_endpoint_handler_single(WP_REST_Request $request) { 

    $params = $request->get_query_params();

    $args = [
         'post_type' => 'cars',
         'numberposts' => 1,
         'include' => array($params['id']),
    ];

    $post = get_posts($args);

        $data['id'] = $post[0]->ID;
        $data['slug'] = $post[0]->post_name;
        $data['title'] = $post[0]->post_title;
        $data['content'] = $post[0]->post_content;
        $data['excerpt'] = $post[0]->post_excerpt;

    return $data;
}
 类似资料:
  • 我已经创建了一个WordPress自定义帖子类型,然后我创建了REST API自定义endpoint来让所有帖子正常工作。然后,我创建了另一个自定义endpoint,通过ID获取单个帖子。例如http://localhost:8888/WordPress/WP-JSON/LC/v1/cars/120 我已经创建了一些帖子,每次我将路线末端的ID更改为118或116时,它都会显示最新的post-ID

  • 我试图为自定义帖子类型创建一个页面,但我无法真正实现。以下是我正在尝试的全部内容- 自定义帖子类型注册的functions.php片段 我使用名为单Tutorial.php的模板为这个自定义帖子类型模板。此外,在我的帖子显示中,我使用the_permalink()链接到帖子。 现在考虑一个标题为Test3的帖子现在在我的仪表板上,我看到它的PyMalink AS。 当我回显我得到的_permali

  • 我正在设置一个endpoint,我想用它来更新自定义帖子类型中的ACF字段。 在这里,我注册了字段endpoint和回调 在邮递员中发送此请求:http://localhost:32851/wp-json/responsify/v1/assign_external_writer?写入器=32272 如果我使用“title=my_new_title”而不是writer,它会正确更新。但是使用 ACF

  • 我正在使用高级自定义字段插件,我试图通过分类字段过滤一些自定义帖子,修改WP_Query: 如果我尝试通过文本字段过滤一切正常,WP_Query被修改。但是当字段是一个分类法字段时,我不知道应该传递什么参数,因为它是一个对象。我尝试了分类法名称和分类法ID,但不起作用。 是否可以通过分类字段进行筛选?我应该传递的什么参数?谢谢! 更新-结构: 自定义帖子:“递归操作系统” 自定义分类Slug:'r

  • 我已经使用代码设置了WordPress自定义帖子类型。我已经设法让自定义帖子显示在“归档”页面中,但如果我单击“归档”页面中的链接,WP无法找到单个帖子页面。 我想我可能对定制的post permalinks有问题。希望有人能帮我 functions.php 页面模板 要显示自定义帖子,我设置了一个带有WP查询的新页面模板: 页面模板代码似乎工作和所有自定义帖子显示预期但当我点击标题链接我得到一个

  • 我有一个自定义的帖子类型和一个像这样创建的公文包分类法: 当我在查询中使用它时,它的工作原理应该是这样的。它显示在后端的菜单中,以及此自定义帖子类型的类别。 我的问题是,当我尝试从某个类别检索所有帖子时(通过单击类别名称),我发现