【问题标题】:Under what circumstances would WordPress REST API return empty content/excerpt?在什么情况下 WordPress REST API 会返回空的内容/摘录?
【发布时间】:2017-09-08 22:44:15
【问题描述】:

我正在运行 WordPress REST API(在 WordPress 4.7.3 上),当我点击 /wp-json/wp/v2/posts 时,我正在为我的帖子返回 JSON,但内容和摘录字段正在显示空白 - 像这样:

"status": "publish",
"type": "post",
"link": "https://www.example.com/myblog/blah/",
"title": {
    "rendered": "Title goes here"
},
"content": {
    "rendered": "",
    "protected": false
},
"excerpt": {
    "rendered": "",
    "protected": false
},
"author": 192,

这些帖子肯定有内容!有什么想法可能导致 API 不返回内容和摘录?

【问题讨论】:

  • 嗨,西蒙。你可以用特定帖子的 ID 试试 /wp-json/wp/v2/post/{ID} 吗?
  • 我试过了,结果完全一样——这些字段返回为"rendered": ""
  • 我猜你的内容被一些使用the_content钩子或类似的插件截断了。你可以尝试禁用任何这样的插件吗?
  • 它可能是某个地方的过滤器 - 您是否尝试过关闭所有插件并切换到默认主题以查看是否可以解决问题(如果可能,在暂存站点上)?如果您使用的内容构建器也可以解释它 - 如果它将所有内容放在简码或 postmeta 中,那么 the_content 实际上可能是空的,因为那不是存储数据的地方。
  • 想出来了吗?同样的问题

标签: wordpress wordpress-rest-api


【解决方案1】:

尝试像下面这样更改您的URL,这应该可以,否则禁用所有已安装的插件并尝试此URL,可能插件冲突会影响内容,

像这样在 URL 中添加额外的参数,

http://example.com/wp-json/wp/v2/posts?items=id,title,featured_media

【讨论】:

    【解决方案2】:

    我知道这个旧的,但我只是遇到了同样的问题并找出了原因/修复。

    在我的例子中,摘录看起来是空的,但实际上包含一堆空白字符。使用 REST-API 调用将其呈现出来只会导致一个空字符串。

    如果我进入帖子并手动删除摘录中的所有空白字符,则该帖子开始按预期工作。

    但是,我有 225 个帖子不想手动删除空格,因此为了自动修剪摘录中的空格(因此如果结果为空,则显示自动生成的摘录),我使用了以下代码在我主题的函数文件中(来自https://mindpalette.com/2019/03/wordpress-excerpts-empty-but-post-has-content/

    // trim excerpt whitespace
    if ( !function_exists( 'mp_trim_excerpt_whitespace' ) ) {
      function mp_trim_excerpt_whitespace( $excerpt ) {
        return trim( $excerpt );
      }
      add_filter( 'get_the_excerpt', 'mp_trim_excerpt_whitespace', 1 );
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-08
      • 2020-02-07
      • 2020-11-04
      • 2015-03-06
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      相关资源
      最近更新 更多