Wie verwende ich wp:featuredmedia in der WP-REST-API-Antwort?

Lesezeit: 2 Minuten

Ich versuche, Blog-Beiträge von einer anderen WordPress-Site zu erhalten. Ab sofort rufe ich die Beiträge erfolgreich ab. Ich verwende das folgende Snippet:

$response = wp_remote_get( add_query_arg( array(
    'per_page' => 1,
     'categories' => 38
     ), 'https://www.remotesite.com/wp-json/wp/v2/posts?_embed' ) 
);
if( !is_wp_error( $response ) && $response['response']['code'] == 200 ) {

   $remote_posts = json_decode( $response['body'] ); 
    foreach( $remote_posts as $remote_post ) {
    echo '<h2>'. $remote_post->title->rendered . '</h2>
           <p>' . $remote_post->excerpt->rendered . '</p>';     

   }
 }

Mit dem obigen Code kann ich alle erforderlichen Details, den Titel, den Auszug und das ausgewählte Bild abrufen. Aber es fällt mir sehr schwer, herauszufinden, wie ich die Featured Image-URL aus der obigen Antwort erhalten kann. Kann mir jemand sagen, wie man wp:featuredmedia aus der Antwort verwendet. Ich habe irgendwo den folgenden Code gesehen, um die URL des vorgestellten Bildes zu erhalten, aber das wird mir nicht helfen:

echo [your-data]._embedded['wp:featuredmedia']['0'].source_url

Basierend auf Ihrem Code kann die URL des vorgestellten Bilds wie folgt abgerufen werden:

$remote_post->_embedded->{'wp:featuredmedia'}[0]->source_url

Das ist jedoch die Vollversion der vorgestellten Bilddatei.

Um die URL einer bestimmten Thumbnail-Größe zu erhalten, können Sie auf Folgendes zugreifen:

$remote_post->_embedded->{'wp:featuredmedia'}[0]->media_details->sizes

.. das ist ein array von object Daten (es sei denn, Sie verwenden natürlich true in dem zweite Parameter der json_decode() Funktion).

Standardmäßig sind die verfügbaren Thumbnail-Größen: thumbnail, mediumund medium_large. Hier ist ein Beispiel für die medium Größe:

$remote_post->_embedded->{'wp:featuredmedia'}[0]->media_details->sizes->medium->source_url

Also versuchen Sie es foreach:

foreach( $remote_posts as $remote_post ) {
    $thumb_full_url="";
    $thumb_url="";

    if ( ! empty( $remote_post->featured_media ) && isset( $remote_post->_embedded ) ) {
        $thumb_full_url = $remote_post->_embedded->{'wp:featuredmedia'}[0]->source_url;
        $thumb_url = $remote_post->_embedded->{'wp:featuredmedia'}[0]->media_details->sizes->medium->source_url;
    }

    echo '<h2>'. $remote_post->title->rendered . '</h2>' .
        '<p>' . $remote_post->excerpt->rendered . '</p>' .
        '<p>' .
            'Medium-sized thumbnail: ' . $thumb_url . '<br>' .
            'Full-sized / source: ' . $thumb_full_url .
        '</p>';
}

1435190cookie-checkWie verwende ich wp:featuredmedia in der WP-REST-API-Antwort?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy