wordpress wp的休息api获得与他们的 meta后

oxiaedzo  于 2022-12-03  发布在  WordPress
关注(0)|答案(3)|浏览(153)

我是一个总的wp newb,我正在努力通过WP REST API获得所有 meta(wp_postmeta表)的帖子。http://v2.wp-api.org/reference/posts/
任何指导都是非常感谢。谢谢!

3gtaxfhh

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/postshttp://localhost/rest_api/wp-json/wp/v2/post/58
后 meta将在“元数据”中

lztngnrs

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

r3i60tvu

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

相关问题