从 ID 获取用户数据:WP REST API

Fetching User Data From ID: WP REST API

我正在用 React 构建我的第一个完整的生产网站,我 运行 遇到了 WP REST API 的问题。我有一个博客页面,其中列出了我在 WordPress 上的帖子,没问题。唯一的问题是,我映射了帖子数组,作者是一个数字(作者 ID)。

在这种情况下如何获取该用户 ID?

import React, { Component } from "react"
...
class Blog extends Component {

   static async getInitialProps() {

      const postsRes = await fetch(`${Config.apiUrl}/wp-json/wp/v2/posts?_embed`)

      const post = await postsRes.json()

      return(post)

   }

render() {
   const posts = this.props.posts.map((post,index) => {
   return(
      <li key={index}>
         {post.better_featured_image != null ? <Feat img= 
         {post.better_featured_image.source_url}/> : ""}
         <Link
          as={`/blog/${post.slug}`}
          href={`/blog?slug=${post.slug}&apiRoute=post`}
         >
         <a>{post.title.rendered}</a>
         <p>{post.author}</p> //Returns ID I need name
         </Link>
       </li>
    )
   })
}

}

我希望能够将作者姓名放在上面我有评论的地方。我试过构建函数,但我就是想不通。我想弄清楚我是否应该调用一个函数,该函数可以将该 id 从 post.author 传回,然后将其附加到 /wp-json/wp/v2/users/Insert Here

任何提示或建议!

(抱歉,如果我有轻微的语法错误,我使用样式化的组件来手动输入它,仅使用标准的 jsx 元素)

你有两个选择,第一个:

==> 通过端点获取用户数据:

/wp-json/wp/v2/users/USER_ID

==> 将新字段author_name注册到post响应的第二个选项如下:

add_action( 'rest_api_init', 'rest_get_author_name' );
function rest_get_author_name() {
    register_rest_field( 'post',
        'author_name',
        array(
            'get_callback'    => 'get_author_name'
        )
    );
}
function get_author_name( $object ) {
    return the_author_meta( 'user_nicename' , $object['author'] );
}

此代码应放在您主题的 functions.php 中。

好的,对于以后看到这个的人来说。 Shahin 的回答仍然正确,但我发现了一种更简单的方法。

如您所见,我正在使用 /wp-json/wp/v2/posts?_embed

使用 _embed 会给您一些额外的魔力。

<p>Author: {post._embedded.author[0].name}</p>

这就是您访问作者姓名的方式。如果您正在寻找任何东西,您应该先检查 _embedded,因为它很简单!