问题描述
我有一个自定义字段,已添加到每个wordpress帖子中。我创建了一个api端点,该端点查询自定义字段为某个值的帖子。效果很好,代码是:
Example string: "This is a sample string & example"
Current output: "This_is_a_sample_string___example"
Expected output: "This_is_a_sample_string_example"
问题:
从该终结点返回的数据不包含通常包含在例如“ / wp / v2 / posts”中的所有发布数据,特别是从属或链接。
问题:
我想知道是否可以将在此问题查询端点中返回的帖子添加到要返回的帖子数据中?
解决方法
如果我正确理解了该问题,并且以您正在使用ACF插件为前提,并且以功能名称fp_acf
为前提,则需要注册一个自定义REST字段,其中包含所需ACF字段的值
要完成此操作,您必须执行以下操作:
- 首先,确保
WP_Query
过去的所有帖子都可以在REST API中显示。
默认帖子和页面已经显示在REST api中,但是对于任何自定义帖子类型,您需要将'show_in_rest' => true
添加到其register_post_type
参数数组中。 - 接下来,您要实际注册自定义REST字段,您可以像这样在
rest_api_init
回调中完成此操作:
add_action('rest_api_init',function() {
// ...
register_rest_field( array( 'your_post_type' ),'is_featured_post',array(
'get_callback' => function() {
return get_field('featured_post');
},'schema' => array(
'description' => 'Shows whether the post is featured','type' => 'string'
),));
});
很显然,您可以将return
函数的get_callback
值更改为所需的值。您应该能够使用所有相同的功能,例如
get_the_permalink
,get_the_title
等,就像您遍历模板中的帖子一样。
您说您需要获取大量的帖子,您应该发现REST api返回的帖子和页面已经有一个slug
属性。