get_posts () не возвращает поле featured_image в пользовательской конечной точке Wordpress - PullRequest
0 голосов
/ 21 октября 2019

Попытка получить только необходимые данные на пользовательской конечной точке в Wordpress. Для этого я использую функцию get_posts().

add_action('rest_api_init', function() {
  register_rest_route('wl/v1', 'pages', [
    'methods' => 'GET',
    'callback' => 'wl_page',
  ]);
});


 function wl_page() {

  $args = [
    'numberposts' => 99999,
    'post_type' => 'page',
    'post_parent' => 0,
  ];

  $posts = get_posts($args);

  $data = [];

  $data['ID'] = $posts[0]->ID;
  $data['title'] = $posts[0]->post_title;
  $data['content'] = $posts[0]->post_content;
  $data['featured_image'] = $posts[0]->featured_media;

   return $data;
 }

Она должна возвращать идентификатор выбранного изображения, но get_posts() даже не возвращает это поле.

1 Ответ

1 голос
/ 21 октября 2019

get_posts возвращает массив объектов Post, у которых нет свойства featured_media. Вместо этого используйте get_post_thumbnail_id().

См. Обновленный код ниже:

add_action('rest_api_init', function() {
  register_rest_route('wl/v1', 'pages', [
    'methods' => 'GET',
    'callback' => 'wl_page',
  ]);
});


 function wl_page() {

  $args = [
    'numberposts' => 99999,
    'post_type' => 'page',
    'post_parent' => 0,
  ];

  $posts = get_posts($args);

  $data = [];

  $data['ID'] = $posts[0]->ID;
  $data['title'] = $posts[0]->post_title;
  $data['content'] = $posts[0]->post_content;
  $data['featured_image'] = get_post_thumbnail_id( $posts[0]->ID );

   return $data;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...