WordPress REST API v2 возвращает все изображения, а не только из выбранной записи - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь добавить некоторые поля в REST API, отредактировав файл functions.php. Поскольку у меня нет большого опыта работы с WP, я посмотрел, как это сделать, и придумал следующий код:

add_action( 'rest_api_init', 'add_images_to_JSON' );

function add_images_to_JSON() {
    register_rest_field( 
        'post',
        'images',
        array(
            'get_callback'    => 'get_images_src',
            'update_callback' => null,
            'schema'          => null,
             )
        );
    }

    function get_images_src( $object, $field_name, $request ) {
        $args = array(
            'posts_per_page' => -1,
            'order'          => 'ASC',
            'orderby'        => 'menu_order',
            'post_mime_type' => 'image',
            'post_parent'    => $object->id,
            'post_status'    => null,
            'post_type'      => 'attachment',
            'exclude'        => get_post_thumbnail_id()
        );

        $attachments = get_children( $args );

        $images = [];
        foreach ($attachments as $attc){
            $images[] =  wp_get_attachment_thumb_url( $attc->ID );
        }

       return $images;
    }

Проблема в том, что когда я получаю список постов по категориям, это возвращает все изображения во всех сообщениях, а не только изображения, связанные с ним. Как я могу сделать так, чтобы каждое сообщение возвращало только связанные изображения?

1 Ответ

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

Попробуйте это:

function get_images_src( $object, $field_name, $request ) {
     $images = [];
     $post_images = get_attached_media('image', $object->ID);
     foreach($post_images as $image) { 
          $images[] = wp_get_attachment_image_src($image->ID,'full');
     }
     return $images;
}
...