[英]Get advanced custom fields (ACF) revisions
我有一個使用WordPress REST API和高級自定義字段ACF的網站 。 我使用插件ACF TO REST API將AC字段公開給REST API。 到現在為止還挺好。
但是現在我想在wordpress后端的“預覽更改”按鈕中添加常規功能。 我設法更改了按鈕的功能,並且我還了解到,按此按鈕確實可以將帖子自動保存到新的修訂版中。 要訪問和顯示預覽,我必須獲取帖子的最新修訂版本的數據。 我可以這樣做,但是REST API僅公開核心wordpress內容(例如標題,內容,摘錄等),而不公開屬於該帖子的ACF。
我想訪問wordpress REST API路由以獲得該帖子的最新版本, 包括 (已更改的)ACF字段的內容。
有人可以幫助我如何編寫一個自定義路由嗎? 我試圖將此功能添加到ACF TO REST API插件中,但是到目前為止,我還沒有成功。
我想我已經調用了REST API路由,其中包含了帖子(或頁面)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_id' = RevisionID
查詢所有post_meta條目,並將結果與最新修訂版的結果合並。
有人可以確認嗎?
我也將很高興獲得一些幫助,以幫助我設置Wordpress REST API的查詢以過濾所需的結果。
感謝您的任何幫助。
干杯
目前,我的REST API插件ACF不支持修訂,因此您需要使用以下代碼段。
我計划在下個月發布此功能。
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}/revisions
http://localhost/wp-json/wp/v2/posts/{post_id}/revisions/{revision_id}
參考文獻:
https://github.com/airesvsg/acf-to-rest-api/issues/190#issuecomment-345854148
https://developer.wordpress.org/rest-api/reference/post-revisions/
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.