从 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,因为它很简单!
我正在用 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,因为它很简单!