当前位置: 首页 > 知识库问答 >
问题:

获取高级自定义域 (ACF) 修订版

谷梁向荣
2023-03-14

我有一个使用WordPress REST API和高级自定义字段ACF的网站。我使用插件ACF TO REST API向REST API公开AC字段。目前为止,一切都好。

但是现在我想在wordpress后端的预览修改按钮中添加正常的功能。我设法改变了按钮的功能,我还知道按下它会自动将文章保存到新的版本中。要访问和显示预览,我必须获得帖子的最新版本的数据。我可以这样做,但是REST API只暴露核心的wordpress内容(如标题、内容、摘录等)。)而不是属于该职位的ACF。

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

有人能帮助我如何编写一个完全这样做的自定义路由吗?我试图将此功能添加到ACF TO REST API插件中,但到目前为止我没有成功。

我想我已经调用了一个REST API route,其中包含了文章(或页面)id,然后它调用了一个函数,返回给我那个页面的修改(我已经在这里得到了

这向我显示了一个像这样的修订条目数组:

{
    "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(我称它为修订ID,在上面的例子中是461)。

然后我需要用<code>‘post_id=RevisionID</code>查询所有post_ meta条目,并将结果与最新版本的结果合并。

有人能证实吗?

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

谢谢你的帮助。

干杯

共有1个答案

洪成济
2023-03-14

目前我的插件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 );

endpoint:

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

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

引用:

https://github . com/Aires vsg/ACF-to-rest-API/issues/190 # issue comment-345854148

https://developer.wordpress.org/rest-api/reference/post-revisions/

谢谢

 类似资料:
  • 我正在使用ACF插件来管理一个WooCommerce网站内的各种自定义元数据。我试图设置的功能之一是向WooCommerce结帐页面添加自定义字段。我遵循WC文档页面上概述的一般概念,它允许您通过woocommerce_after_order_notes钩子将自定义表单追加到WC结帐表单。从那里,我使用acf_form()函数输入acf表单,表单设置为false,以允许它不包含acf表单元素(即a

  • 我在Wordpress中有一个名为“svg”的ACF字段菜单 为了创建我的菜单,我这样做: 我像这样显示我的菜单: 在我的Foreach中,我试图从我的菜单中调用我的ACF字段,如下所示: 但它不起作用(空)。我迷路了。如何获取我的 ACF 字段? 真是太感谢你了

  • 我结合了一个滑块和中继器字段。在中继器下,我有2个子字段。一个叫“形象”,另一个叫“标题” 这个滑块有一个叫做“Selected-Item”的类,当图像被选中时会动态地出现。(当这个类在图像上时,图像会改变它的大小)。 我如何定义当类“select-item”在某个图像上时,图像的同一行也会出现“title”? 这是显示图像的代码: JS-在图像中添加类“select-item”的“carouse

  • 在Wordpress中,我创建了一个名为“Sports”的自定义帖子类型,其分类法为“sport_locations”。使用高级自定义字段(ACF)插件,我创建了用于显示分类术语的字段。我把一切都准备好了,但是我在输出上传的图像时遇到了问题。 在ACF中,我可以选择图像的返回值为:对象,url或ID。现在我已将其设置为对象。 下面是我到目前为止的代码。我正在single-sports.php中编写

  • 我正在使用名为高级定制字段(ACF)和WooCommerce的插件。我想为WooCommerce产品变体创建一个文本和图像字段。我在ACF中创建了字段,并将它们分配给。 但是在下没有看到这些字段。我搜索了,看起来我必须写一个自定义代码来适应这些字段。我试着搜索这个问题,我创建的大多数建议和教程都是关于通过代码创建自定义字段,而不是使用ACF,这对我没有帮助,因为字段必须使用ACF,这是因为我使用V

  • 所以我在一个以FoundationPress为主题的wordpress站点上工作,最近我将ACF升级到了Pro版本,允许repeater字段。所以我试着让客户用中继器添加新的社交媒体帐户。 http://imgur.com/ft58spd http://imgur.com/mydpawl 上面您可以看到中继器是如何在后端设置的。 header.php: 没有任何东西输出到HTML中。 如果我遗漏了