Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 获取高级自定义字段(ACF)修订_Wordpress_Api_Advanced Custom Fields_Wordpress Rest Api_Revisions - Fatal编程技术网

Wordpress 获取高级自定义字段(ACF)修订

Wordpress 获取高级自定义字段(ACF)修订,wordpress,api,advanced-custom-fields,wordpress-rest-api,revisions,Wordpress,Api,Advanced Custom Fields,Wordpress Rest Api,Revisions,我有一个使用WordPressRESTAPI和高级自定义字段的站点。我使用该插件向RESTAPI公开AC字段。到目前为止还不错 但现在我想在wordpress后端的«预览更改»按钮中添加正常功能。我设法改变了按钮的功能,而且我还了解到按下按钮会自动将帖子保存到新版本中。要访问和显示预览,我必须获取文章最新版本的数据。我可以这样做,但RESTAPI只公开核心wordpress内容(如标题、内容、摘录等),而不公开属于该帖子的ACF 我想访问wordpress REST API路由,以获取post的

我有一个使用WordPressRESTAPI和高级自定义字段的站点。我使用该插件向RESTAPI公开AC字段。到目前为止还不错

但现在我想在wordpress后端的«预览更改»按钮中添加正常功能。我设法改变了按钮的功能,而且我还了解到按下按钮会自动将帖子保存到新版本中。要访问和显示预览,我必须获取文章最新版本的数据。我可以这样做,但RESTAPI只公开核心wordpress内容(如标题、内容、摘录等),而不公开属于该帖子的ACF

我想访问wordpress REST API路由,以获取post的最新版本,包括(更改的)ACF字段的内容

有人能帮我写一条定制路线吗?我试图将此功能添加到ACF to REST API插件中,但到目前为止我没有成功

我想我已经调用了一个REST API路由,其中我包含了posts(或pages)id,然后它进行调用,返回该页面的修订版(我已经在这里获得了该修订版)>
wp/v2/pages/51/revisions/

这显示了一组修订条目,如下所示:

{
    "author": 1,
    "date": "2017-11-17T18:19:51",
    "date_gmt": "2017-11-17T17:19:51",
    "id": 461,
    "modified": "2017-11-17T18:19:51",
    "modified_gmt": "2017-11-17T17:19:51",
    "parent": 51,
    "slug": "51-autosave-v1",
    "guid":
    {
        "rendered": "http://[DOMAIN]/51-autosave-v1/"
    },
    "title":
    {
        "rendered": "post title"
    },
    "content":
    {
        "rendered": "post content"
    },
    "excerpt":
    {
        "rendered": ""
    },
    "_links":
    {
        "parent": [
        {
            "href": "http://[DOMAIN]/api/wp/v2/pages/51"
        }]
    }
},
但是现在我只想要最新的版本。最新的版本看起来像一篇普通的帖子,并且有一个普通的帖子ID(我称之为RevisionID,在上面的例子中是
461

然后我需要用
'post\u id'=RevisionID
查询所有post\u元条目,并将结果与最新版本的结果合并

有人能证实吗

我也很高兴能得到一些帮助,帮助我如何设置WordPressRESTAPI的查询,以过滤我想要的结果

谢谢你的帮助


干杯

现在我的插件ACF to REST API不支持修订,所以您需要使用下面的代码段

我计划在下个月发布此功能

add_filter( 'rest_prepare_revision', function( $response, $post ) {
    $data = $response->get_data();

    $data['acf'] = get_fields( $post->ID );

    return rest_ensure_response( $data );
}, 10, 2 );
端点:

http://localhost/wp-json/wp/v2/posts/{post_id}/修订版

http://localhost/wp-json/wp/v2/posts/{post_id}/revisions/{revision_id}

参考文献:


谢谢

现在我的插件ACF to REST API不支持修订,所以您需要使用下面的代码段

我计划在下个月发布此功能

add_filter( 'rest_prepare_revision', function( $response, $post ) {
    $data = $response->get_data();

    $data['acf'] = get_fields( $post->ID );

    return rest_ensure_response( $data );
}, 10, 2 );
端点:

http://localhost/wp-json/wp/v2/posts/{post_id}/修订版

http://localhost/wp-json/wp/v2/posts/{post_id}/revisions/{revision_id}

参考文献:


感谢

到目前为止,我编写了自己的WP\u REST\u控制器(扩展了该控制器)。我几乎手动获取帖子的最新版本(-id)(id作为uri中的参数传递)>
WP\u get\u post\u revisions
。然后我使用
get\u post\u meta($id\u of\u revision)
获取与此版本相关的自定义字段(这是我的预览版本)。这种类型给了我正确的结果,但它们非常混乱。另外,嵌套信息,如带有
type=image
的ACF的信息也不可用。插件ACF TO REST API确实设法将这些字段转换为整洁的json,但我没有。也许有人可以帮我解决。✌到目前为止,我编写了自己的WP\u REST\u控制器(扩展了该控制器)。我几乎是手动获取帖子的最新版本(-id)(id作为uri中的参数传递)>
WP\u get\u post\u revisions
。然后我使用
get\u post\u meta($id\u of\u revision)
获取与此版本相关的自定义字段(这是我的预览版本)。这种类型给了我正确的结果,但它们非常混乱。另外,嵌套信息,如带有
type=image
的ACF的信息也不可用。插件ACF TO REST API确实设法将这些字段转换为整洁的json,但我没有。也许有人可以帮我解决。✌