添加发布字段以在自定义WordPress REST API端点中发布数据

问题描述

我有一个自定义字段,已添加到每个wordpress帖子中。我创建了一个api端点,该端点查询自定义字段为某个值的帖子。效果很好,代码是:

Example string: "This is a sample string & example"
Current output: "This_is_a_sample_string___example"
Expected output: "This_is_a_sample_string_example"

问题:

从该终结点返回的数据不包含通常包含在例如“ / wp / v2 / posts”中的所有发布数据,特别是从属或链接

问题:

我想知道是否可以将在此问题查询端点中返回的帖子添加到要返回的帖子数据中?

解决方法

如果我正确理解了该问题,并且以您正在使用ACF插件为前提,并且以功能名称fp_acf为前提,则需要注册一个自定义REST字段,其中包含所需ACF字段的值

要完成此操作,您必须执行以下操作:

  1. 首先,确保WP_Query过去的所有帖子都可以在REST API中显示。
    默认帖子和页面已经显示在REST api中,但是对于任何自定义帖子类型,您需要将'show_in_rest' => true添加到其register_post_type参数数组中。
  2. 接下来,您要实际注册自定义REST字段,您可以像这样在rest_api_init回调中完成此操作:
add_action('rest_api_init',function() {
    
    // ...

    register_rest_field( array( 'your_post_type' ),'is_featured_post',array(
        'get_callback' => function() {
            return get_field('featured_post');
        },'schema' => array(
            'description' => 'Shows whether the post is featured','type'        => 'string'
        ),));
});

很显然,您可以将return函数的get_callback值更改为所需的值。您应该能够使用所有相同的功能,例如 get_the_permalinkget_the_title等,就像您遍历模板中的帖子一样。

您说您需要获取大量的帖子,您应该发现REST api返回的帖子和页面已经有一个slug属性。