Mediengalerie Bilder URL anstelle von ID auf WP API-Antwort

Ich verstehe das in meiner Antwort

"main_image": [ "11125,11122,11123,11127,11128" ], 

Das sind die IDs meines Posts. Ich muss die URL jeder ID in der Größe “thumbnail” ermitteln. Ich habe keine Lösung gefunden, nur diesen Code, aber es ist mehr für Custom Meta eines Plugins.

 function xxx_past_poss_custom_metadata( $post_response, $post, $context ) { $meta = get_post_custom( $post['ID'] ); $custom_fields = array(); $xxx_image_gallery = array(); foreach ( $meta['xxx_cmb_image_gallery'] as $key => $value ) { $value = wp_get_attachment_url($value); $xxx_image_gallery[ $key ] = $value; }; foreach ( $meta as $key => $value ) { // Replace 'xxx_' with any custom metakey prefix (ie. '_' for private metadata's) if ( 'xxx_' !== substr( $key, 0, 1 ) ) { $custom_fields[ $key ] = $value; }; } $post_response['xxx_image_gallery'] = $xxx_image_gallery; $post_response['custom_fields'] = $custom_fields; return $post_response; } add_filter( 'json_prepare_post', 'xxx_past_poss_custom_metadata', 10, 3 ); 

Mein Meta heißt es “media_gallery”.

Jede Hilfe wird sehr geschätzt.

[AKTUALISIEREN]

Scheint, als ob ich nicht einmal meine JSON-Antwort modifizieren würde, weil ich ein Plugin aktiviert hatte. Wenn ich es ausgeschaltet habe, habe ich mein Meta in meiner functions.php-Datei deklariert und nein, ich habe das.

 add_action('rest_api_init', 'register_custom_fields', 1, 1); function register_custom_fields(){ register_rest_field( 'job_listing', 'thumbnail', array( 'get_callback' => 'show_image' ) ); } function show_main_image($object, $field_name, $request){ $custom_fields = get_post_custom($object['id']); $main_image = $custom_fields['main_image']; return $main_image; } 

Ich kann jetzt die Antwort ändern, aber ich konnte immer noch nicht alle diese IDs: “11125, 11122, 11123, 11127, 11128” in URL-Quellen umwandeln.

Meine benutzerdefinierte Eingabe speichert die Bild-IDs wie folgt: “11125,111122,111123,111127,111128”, also wurde Pedro gesagt, dass es wahr ist

ist ein Array mit einer einzigen Zeichenfolge im Inneren

Was ich als nächstes versuchte, war folgendes:

 function show_main_image($object, $field_name, $request){ $custom_fields = get_post_custom($object['id']); $main_image = $custom_fields['main_image']; foreach ( $main_image as $key => $value ) { $imagesID = explode(',',$value); foreach ($imagesID as $id => $value) { $result = wp_get_attachment_url($value); $custom_fields[ $id ] = $result; } }; $image_urls = array(); return $result; } 

Aber immer noch kein Glück, jetzt scheint der Endpunkt “main_image” leer zu sein.

Solutions Collecting From Web of "Mediengalerie Bilder URL anstelle von ID auf WP API-Antwort"

Dies ist der richtige Weg, um es zu erreichen:

 function show_main_image($object, $field_name, $request){ $custom_fields = get_post_custom($object['id']); $main_image = $custom_fields['main_image']; $arregloimg = explode(',',$main_image[0]); $image_urls = array(); foreach ( $arregloimg as $key => $value ) { $image_urls[] = wp_get_attachment_url($value,'thumbnail'); }; return $image_urls; } 

basierend auf Ihrem Kommentar denke ich, was Sie brauchen, ist wp_get_attachment_image_src .

WordPress speichert Anhänge (wie Bilder) als eine Art von Post. Scheint albern, aber das bedeutet, dass es alle möglichen Meta-Informationen speichert, wie zum Beispiel verschiedene Größen, Bildunterschriften usw. Jedes Bild erhält eine Post-ID.

Angenommen, Sie haben dieses Array, das von Ihrem JSON aus analysiert wird:

 $main_image = array( 11125, 11122, 11123, 11127, 11128 ); 

(Beachten Sie, dass Ihr JSON anscheinend ein Array mit einer einzigen Zeichenfolge anstatt mehrerer Ganzzahlen zurückgibt).

Sie gehen einfach die Bild-URL in Miniaturgröße an:

 $image_urls = array(); foreach ( $main_image as $image_id ) { $image_urls[] = wp_get_attachent_image_src( $image_id, 'thumbnail' ); } 

Jetzt ist $image_urls mit … image urls gefüllt 🙂

Haben Sie danach gesucht?