我是一个总的wp newb,我正在努力通过WP REST API获得所有 meta(wp_postmeta表)的帖子。http://v2.wp-api.org/reference/posts/任何指导都是非常感谢。谢谢!
3gtaxfhh1#
我找到了一个简单的解决方案。在当前主题- functions.php中添加以下代码:
register_rest_field( 'post', 'metadata', array( 'get_callback' => function ( $data ) { return get_post_meta( $data['id'], '', '' ); }, ));
它将返回包含所有 meta的帖子/帖子。例如http://localhost/rest_api/wp-json/wp/v2/posts或http://localhost/rest_api/wp-json/wp/v2/post/58后 meta将在“元数据”中
lztngnrs2#
如果要使用单个字段:
register_rest_field( 'post', 'views', array( 'get_callback' => function ( $data ) { return get_post_meta( $data['id'], 'hs_views', true ); }, ));
不要忘记将hs_views字段更改为所需的值如果要使用所有字段:
register_rest_field( 'post', 'meta', array( 'get_callback' => function ( $data ) { return get_post_meta( $data['id'], '', '' ); }, ));
检查参考:get_post_meta
r3i60tvu3#
虽然register_rest_route适合广泛的自定义,但Wordpress允许您在默认的Wordpress REST API中公开自定义 meta字段,而不必构建自己的端点。您可以使用register_ meta来公开某些帖子类型的特定WordPress元字段。默认情况下,元字段不会注册为向Rest API公开。
register_meta('post', 'type', [ 'type' => 'string', 'single' => true, 'show_in_rest' => true, ]);
在这个例子中,我们设置default 'posts'来显示restapi中键为“type”的 meta字段,具体来说,show_in_rest设置为true就可以实现这一点。了解更多-〉https://developer.wordpress.org/rest-api/extending-the-rest-api/modifying-responses/#using-register_rest_field-vs-register_meta
3条答案
按热度按时间3gtaxfhh1#
我找到了一个简单的解决方案。在当前主题- functions.php中添加以下代码:
它将返回包含所有 meta的帖子/帖子。例如http://localhost/rest_api/wp-json/wp/v2/posts或http://localhost/rest_api/wp-json/wp/v2/post/58
后 meta将在“元数据”中
lztngnrs2#
如果要使用单个字段:
不要忘记将hs_views字段更改为所需的值
如果要使用所有字段:
检查参考:get_post_meta
r3i60tvu3#
虽然register_rest_route适合广泛的自定义,但Wordpress允许您在默认的Wordpress REST API中公开自定义 meta字段,而不必构建自己的端点。
您可以使用register_ meta来公开某些帖子类型的特定WordPress元字段。默认情况下,元字段不会注册为向Rest API公开。
在这个例子中,我们设置default 'posts'来显示restapi中键为“type”的 meta字段,具体来说,show_in_rest设置为true就可以实现这一点。
了解更多-〉https://developer.wordpress.org/rest-api/extending-the-rest-api/modifying-responses/#using-register_rest_field-vs-register_meta