我正在尝试在wp-json/wp/v2/search
获取端点,但此端点似乎没有考虑register_rest_field
方法
add_action(\'rest_api_init\', function() {
register_rest_field(\'post\', \'excerpt\', array(
\'get_callback\' => function ($post_arr) {
die(var_dump($post_arr));
return $post_arr[\'excerpt\'];
},
));
register_rest_field(\'page\', \'excerpt\', array(
\'get_callback\' => function ($post_arr) {
die(var_dump($post_arr));
return $post_arr[\'excerpt\'];
},
));
});
这导致
wp-json/wp/v2/pages
和
wp-json/wp/v2/posts
去死,但是
wp-json/wp/v2/search
虽然它可以呈现帖子和页面,但效果很好。
你知道我如何将我的摘录添加到wp-json/wp/v2/search
路线
最合适的回答,由SO网友:Sally CJ 整理而成
对于搜索端点,对象类型(的第一个参数register_rest_field()
) 是search-result
而不是岗位类型(例如。post
, page
, 等等)。
所以试试这个,对我来说很有用:
add_action( \'rest_api_init\', function () {
// Registers a REST field for the /wp/v2/search endpoint.
register_rest_field( \'search-result\', \'excerpt\', array(
\'get_callback\' => function ( $post_arr ) {
return $post_arr[\'excerpt\'];
},
) );
} );
SO网友:Ian Dunn
仅嵌入具有embed
上下文您可以使用"rest_{$post_type}_item_schema"
滤器
--https://core.trac.wordpress.org/ticket/51596
这里有一个例子。注意,父字段content
需要为子字段添加上下文,如content.rendered
出现。
add_filter( \'rest_\' . POST_TYPE . \'_item_schema\', function( $schema ) {
$schema[\'properties\'][\'content\'][\'context\'][] = \'embed\';
$schema[\'properties\'][\'content\'][\'properties\'][\'rendered\'][\'context\'][] = \'embed\';
return $schema;
} );
这感觉有点不一样。”;“正确”;对我来说
register_rest_field()
.