如何向管理用户界面和REST API响应添加自定义字段?

时间:2017-06-15 作者:redshift

我是自定义WordPress开发的新手,正在学习如何使用RESTAPI端点在non-WordPress 公司内部网站。我已经成功地将标准post数据应用到我的开发概念中,这是一个按标题和日期列出的书籍列表。

我需要在WP后端添加和显示更多自定义元数据。我知道我需要为我的图书目录创建一个自定义帖子类型。我说得对吗?我添加了Custom Post Type UI plugin 帮助注册和管理此自定义帖子类型。

我正在尝试用WP映射我的内容,我需要添加默认的自定义字段,例如:图书作者、出版日期、编辑、出版商、国家等。

我的主要问题。。。

How do I get these required custom fields into WP\'s admin UI as required fields for my users to fill out?

Will the Custom Post Type UI plugin also automatically add these custom fields to the REST JSON object?

感谢您提供的任何指导和/或示例!

1 个回复
最合适的回答,由SO网友:WebElaine 整理而成

就创建自定义帖子类型而言,听起来您的做法是正确的。对于自定义字段,您可以学习如何创建自己的插件并自己创建这些插件,或者为了获得更简单的体验,您可以使用诸如高级自定义字段之类的插件,它为您添加字段提供了一种更WYSIWYG的方法。

您需要首先创建自定义的帖子类型,并确保URL的外观符合您的要求。这可能需要一些实验。您可以在自己的插件中实现这一点—如果您能够使用一点PHP,那么这是相当简单的代码—而不是依赖于自定义的Post类型UI插件。或者,如果更舒适的话,就继续使用插件。

然后,使用ACF(您可能需要付费专业版,但可以先试用免费版),您将建立一个他们称之为字段组的组-列出所有必需字段,如作者、编辑器等,并可以选择要接受的数据类型。对于“发布日期”,可以使用日期选择器。对于“author”,您可以创建一个文本字段,如果您还想包含作者的照片、他们网站的链接等,也可以创建一个完整的WYSIWYG编辑器。然后,您可以确定WP将在何处显示输入字段-在您的情况下,当帖子类型等于“book”时。您还可以告诉它禁用常规编辑器,这样当您编辑“book”帖子时,您将只看到自定义字段。

最后一步是在REST API中公开这些字段。不,默认情况下这些字段不可用,但如果您使用ACF,则有一个名为ACF to REST API的免费插件,它将根据需要向REST API公开您创建的任何内容。

如果您还想在WordPress站点本身查看内容,而不仅仅是您的非WP intranet,那么您还需要自定义一个主题,以显示您使用ACF添加的所有额外信息。默认情况下不会显示,因为主题只知道查找标准WP内容。如果您只想在intranet上显示内容,当然不需要这样做。

结束

相关推荐

Php致命错误:无法将WP_REST_RESPONSE类型的对象用作wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php中

我向WordPress添加了一个自定义端点,如下所示: add_action( \'rest_api_init\', function () { register_rest_route( \'menc/v1\', \'/crosscat/(?P[\\w-]+)/(?P[\\w-]+)\', array( \'methods\' => \'GET\', \'callback\' => \'dept_cat_api\',&#x