Wordpress 获取高级自定义字段(ACF)修订
我有一个使用WordPressRESTAPI和高级自定义字段的站点。我使用该插件向RESTAPI公开AC字段。到目前为止还不错 但现在我想在wordpress后端的«预览更改»按钮中添加正常功能。我设法改变了按钮的功能,而且我还了解到按下按钮会自动将帖子保存到新版本中。要访问和显示预览,我必须获取文章最新版本的数据。我可以这样做,但RESTAPI只公开核心wordpress内容(如标题、内容、摘录等),而不公开属于该帖子的ACF 我想访问wordpress REST API路由,以获取post的最新版本,包括(更改的)ACF字段的内容 有人能帮我写一条定制路线吗?我试图将此功能添加到ACF to REST API插件中,但到目前为止我没有成功 我想我已经调用了一个REST API路由,其中我包含了posts(或pages)id,然后它进行调用,返回该页面的修订版(我已经在这里获得了该修订版)>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的
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,但我没有。也许有人可以帮我解决。✌