При каких обстоятельствах WordPress REST API вернет пустой контент / отрывок?

Я использую 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?


person Simon Willison    schedule 13.04.2017    source источник
comment
Привет, Саймон. Можете ли вы попробовать / wp-json / wp / v2 / post / {ID} с идентификатором конкретного сообщения?   -  person Marcus Christiansen    schedule 17.04.2017
comment
Я пробовал это, результат тот же - эти поля возвращаются как "rendered": ""   -  person Simon Willison    schedule 17.04.2017
comment
Я предполагаю, что ваш контент обрезается каким-то плагином, который использует the_content хук или что-то подобное ... вы можете попробовать отключить любой из таких плагинов?   -  person Kresimir Pendic    schedule 21.04.2017
comment
Это может быть где-то фильтр - пробовали ли вы отключить все свои плагины и переключиться на тему по умолчанию, чтобы посмотреть, решит ли это проблему (если возможно, на промежуточном сайте)? Если вы используете конструктор контента, который также может это объяснить - если он помещает все в шорткоды или постмету, тогда the_content может быть пустым, потому что данные хранятся не там.   -  person WebElaine    schedule 27.04.2017
comment
Разобрался? Такая же проблема здесь   -  person CularBytes    schedule 27.01.2019
comment
У меня такая же или похожая проблема с полем содержимого, но только для особенно длинных сообщений. Я видел еще одно сообщение WordPress StackExchange, посвященное этому (сообщения, которые слишком долго возвращаются пустыми в ответе REST), с тем, что кажется частичным решением. Я не отслеживал, работает ли решение. wordpress.stackexchange.com/questions/317823/   -  person Todd Gillette    schedule 19.04.2019


Ответы (2)


Попробуйте изменить свой URL-адрес ниже, как это, это должно сработать, в противном случае отключите все установленные вами подключаемые модули и попробуйте этот URL-адрес, возможно, конфликт подключаемых модулей повлияет на контент,

Добавьте дополнительные параметры в URL-адрес, например,

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

Я знаю это старое, но у меня была такая же проблема, и я выяснил причину / исправление.

В моем случае отрывок выглядел пустым, но на самом деле содержал кучу пробелов. Визуализация этого с помощью вызова 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 );
}
person Greg Burkett    schedule 14.04.2020