You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用WordPress API获取博客文章时提示‘未找到文章’求排查

排查 & 解决思路

1. 确认API请求URL的正确性

你代码里的const url = link_here是占位符,必须替换为WordPress REST API的正确端点。针对slug获取文章的标准格式是:

const url = `${app.$axios.defaults.baseURL}/wp/v2/posts?slug=${params.slug}`;
  • 确保baseURL已经在axios配置中正确设置为你的WordPress站点域名(比如https://your-site.com)
  • 如果是自定义文章类型,要把posts替换为对应的类型slug(比如news)
  • 若需要获取文章的关联数据(如特色图片、分类),需添加_embed参数:?slug=${params.slug}&_embed

2. 验证params.slug的有效性

查看浏览器控制台打印的Fetching data for slug:后面的内容,确认:

  • 传递的slug和WordPress后台文章的实际slug完全一致(注意大小写、特殊字符的编码,比如空格会被转为-)
  • 如果是动态路由,确认路由配置中正确定义了:slug参数(比如Nuxt.js中路由文件里的_slug.vue)

3. 检查API返回的结构

WordPress API通过slug查询文章时,返回的是数组(即使只有一篇匹配),但如果你的请求端点是直接通过文章ID获取(/wp/v2/posts/123),返回的是单个对象。此时你的判断逻辑response.length === 0会报错,因为对象没有length属性。

可以调整判断逻辑兼容两种情况:

if (!response || (Array.isArray(response) && response.length === 0) || (typeof response === 'object' && Object.keys(response).length === 0)) {
    error({statusCode: 404, message: 'Article not found'});
    return {article: null};
}
// 根据返回类型处理数据
const article = Array.isArray(response) ? response[0] : response;
return {article};

4. 确认文章状态与API权限

  • 确保目标文章在WordPress后台设置为发布状态(私密、草稿状态的文章无法通过公开API获取)
  • 如果站点启用了API权限限制(比如需要认证),需在axios请求中添加认证头(比如Bearer Token):
const response = await app.$axios.$get(url, {
    headers: {
        'Authorization': `Bearer ${your_token}`
    }
});

5. 排查网络请求错误

查看浏览器开发者工具的「网络」面板,找到对应的API请求,检查:

  • 请求的URL是否正确
  • 响应状态码(比如404表示端点不存在,403表示权限不足)
  • 响应内容是否为空,或者包含错误信息(比如{"code":"rest_post_invalid_slug","message":"Invalid post slug.","data":{"status":404}})

内容的提问来源于stack exchange,提问作者Amel HADDAD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 16:32:59