web-dev-qa-db-fra.com

Comment obtenir la galerie attachée dans le reste de l'API?

Je viens d'ajouter une galerie à mon message et je souhaite accéder à ses images via l'API restante. Dans l'API restante, je peux accéder aux pièces jointes d'un message. Mais ces pièces jointes ont d'autres images, pas dans la galerie. Par exemple, je viens de supprimer une image de la galerie et elle est toujours présente dans les pièces jointes.

3
THpubs

À ma connaissance, cela ne peut être fait hors de la boîte. Pour que vous puissiez utiliser ce que get_post_galleries() ou get_post_gallery() , ce dernier utilise simplement le premier, ajoutez un point de terminaison.

Un exemple minimal pourrait ressembler à celui illustré ci-dessous.

function rest_get_post_gallery( $data ) {
    //set FALSE for data output
    $gallery = get_post_gallery( $data[ 'post_id' ], FALSE );

    if ( empty( $gallery ) ) {
        return NULL;
    }

    //comma separated list of ids
    return $gallery[ 'ids' ];
}

add_action( 'rest_api_init', function () {
    register_rest_route( 'gallery_plugin/v1', '/post/(?P<post_id>\d+)', array(
        'methods' => 'GET',
        'callback' => 'rest_get_post_gallery',
    ) );
} );

Ce qui suit devrait vous donner un résultat maintenant.

http://example.com/wp-json/gallery_plugin/v1/post/<post_id>

Je me suis basé sur l'article Ajout de points de terminaison personnalisés | REST Manuel de l'API , consultez-le pour plus d'informations.

2
Nicolai