📅  最后修改于: 2023-12-03 15:35:44.181000             🧑  作者: Mango
在 WordPress 中,我们可以使用自定义字段或帖子元(post_meta)来存储附加的帖子数据。有时,我们需要查询这些帖子元来获取特定的帖子。在这篇文章中,我将向你展示如何通过 TypeScript 使用 WordPress API 来查询帖子元。
在开始之前,你需要确保你有以下内容:
wordpress-rest-api
包首先,我们需要使用 npm 安装 wordpress-rest-api
包。在终端中,输入以下命令:
npm install wordpress-rest-api
接下来,我们需要导入 wordpress-rest-api
包和相应的类型。
import WPAPI from 'wordpress-rest-api';
import { PostObject } from 'wordpress-rest-api';
我们需要使用 WordPress API 提供的 site
方法来创建实例。在实例化时,我们需要指定 WordPress 网站的 URL,并使用提供的 oauth1
或 oauth2
参数来指定 API 验证方式。如果你的网站使用基本认证,你需要在 URL 前缀加上 https://user:password@
。
const wp = new WPAPI({
// replace with your WordPress API endpoint
endpoint: 'https://example.com/wp-json',
// specify the authentication type
auth: {
// oauth1 or oauth2 or basic
oauth1: {
// OAuth 1.0a configuration
consumerKey: 'YOUR_CONSUMER_KEY',
consumerSecret: 'YOUR_CONSUMER_SECRET',
accessToken: 'YOUR_ACCESS_TOKEN',
accessSecret: 'YOUR_ACCESS_SECRET',
},
oauth2: {
// OAuth 2 configuration
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET',
accessToken: 'YOUR_ACCESS_TOKEN',
},
basic: {
username: 'YOUR_USERNAME',
password: 'YOUR_PASSWORD',
},
},
});
查询帖子元需要使用 wp.posts()
方法,并在查询中添加 'meta_key'
和 'meta_value'
参数。在以下示例中,我们将添加一个名为 'my_custom_field'
的自定义字段,并将其值设置为 'my_custom_value'
。请根据你自己的需求修改这些参数。
const posts: PostObject[] = await wp
.posts()
.param({
meta_key: 'my_custom_field',
meta_value: 'my_custom_value',
})
.get();
如果你想要获取更多帖子元,可以添加额外的参数。例如,你可以将 'meta_compare'
参数设置为 '<'
,这样你就可以获取值小于指定值的帖子。具体可参考 WordPress API 文档。
查询的结果是一个帖子对象数组。你可以遍历这个数组,并使用 post.meta
来访问帖子元。以下是一个示例代码:
posts.forEach(({ id, title, meta }) => {
console.log(`#${id} ${title.rendered}`);
console.log(`Custom Field: ${meta.my_custom_field}`);
});
使用 TypeScript 查询 WordPress 帖子元可能会有些麻烦,但是通过编写自己的代码,我们可以轻松地解决这个问题。我希望这篇文章对你有所帮助。如果你有任何问题或建议,请在评论中分享!