簡體   English   中英

獲取高級自定義字段(ACF)修訂

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM