Listet alle Bilder aus einem einzelnen Post-Meta-Wert auf

Ich habe einen benutzerdefinierten Beitragstyp mit einem Bildergalerie-Upload erstellt. Jetzt versuche ich die Galerie am Frontend anzuzeigen. Dies ist, was ich bis jetzt habe, das funktioniert, um 1 Bild anzuzeigen, aber wenn mehrere Bilder hochgeladen werden, bleiben alle URLs im src Tag stecken. Ich schätze also, ich sollte dieses Array durchlaufen und jedes einzeln ausspucken? Wäre das der richtige Weg, und wenn ja, wie kann ich das erreichen?

  <?php echo 'ID, 'gallery-upload', true).'">'; ?>  

BEARBEITEN:

Das ist, was ich damit fertig gemacht habe …

 ID, 'gallery-upload') as $meta) { foreach(explode(',', $meta) as $src) { echo ''; } } ?> 

Solutions Collecting From Web of "Listet alle Bilder aus einem einzelnen Post-Meta-Wert auf"

Sie sollten die Art und Weise, wie Sie die Bilder speichern, neu organisieren: Stellen Sie die hochgeladenen Dateien untergeordnete Elemente dieses bestimmten Beitrags, und fügen Sie sie nicht in ein Post-Meta-Feld ein. Dann hol get_children() alle Bilder mit get_children() . Sehen Sie sich den integrierten Handler für den [gallery] shortcode für einige Beispiele an.

Ich sollte so gehen:

 $args = array( 'post_mime_type' => 'image', 'numberposts' => -1, 'post_parent' => get_the_ID(), 'post_type' => 'attachment' ); $attached_images = get_children( $args ); foreach ( $attached_images as $image ) { // print image } 

Und selbst wenn Sie bei Post-Meta-Feldern bleiben möchten, speichern Sie keine URLs und verwenden Sie stattdessen die Anhangs-IDs. URLs können sich jederzeit ändern (denken Sie an eine Migration vom Entwickler zum Produktionsstandort).

Ich schätze also, ich sollte dieses Array durchlaufen und jedes einzeln ausspucken? Wäre das der richtige Weg, und wenn ja, wie kann ich das erreichen?

Ja. get_post_meta(...) sollte ein Array ohne den letzten Parameter oder mit false zurückgeben. Du hättest dann …

 < ?php $meta = get_post_meta($post->ID, 'gallery-upload'); foreach ($meta as $m) { echo ''; } ?>