Erhalten Sie die Anhänge einer Seite in der Galerie-Reihenfolge

Nachdem ich eine Seite und eine Galerie auf dieser Seite erstellt habe, möchte ich alle Bilder in dieser Galerie in der Reihenfolge abrufen, in der sie beim Erstellen der Galerie festgelegt wurden, dh in der Reihenfolge, in die ich sie in das Popup-Fenster zum Hinzufügen von Medien ziehe .

Ich muss alle Bild URLs und ihre Überschriften usw. in ein Array in PHP abrufen.

Ich habe den folgenden Code verwendet, berücksichtigt jedoch nicht die Reihenfolge, in der sie in der Galerie festgelegt sind.

function get_page_attached_images($page_id) { $output; $output_row; $thumb_ID = get_post_thumbnail_id( $page_id ); if ( $images = get_posts(array( 'post_parent' => $page_id, 'post_type' => 'attachment', 'numberposts' => -1, 'orderby' => 'menu_order', 'order' => 'ASC', 'post_mime_type' => 'image', 'exclude' => $thumb_ID, ))) foreach ( $images as $img ) { $output_row['url'] = $img->guid; $output_row['title'] = $img->post_title; $output_row['caption'] = $img->post_excerpt; //$output_row['img'] = $img; $output[] = $output_row; } return $output; 

}

Kann jemand die Reihenfolge der Galerie beim Abrufen dieser Anhänge beibehalten?

Ich benutze WordPress v3.61.

Solutions Collecting From Web of "Erhalten Sie die Anhänge einer Seite in der Galerie-Reihenfolge"

Die Galerie “Bestellung” ist im Galerie-Shortcode selbst gespeichert. Sehen Sie sich den Code für die Galerie mit dem “Text” -Editor an, ziehen Sie die Bilder herum und sehen Sie sich den Rohcode erneut an. Damit dies funktioniert, müssen Sie den Post-Inhalt für den Galerie-Shortcode analysieren und seine Daten extrahieren. Etwas wie das:

 function extract_gallery_wpse_114337($post) { $regex = get_shortcode_regex(); preg_match_all('/'.$regex.'/',$post->post_content,$matches); if (!empty($matches[2])) { foreach ($matches[2] as $k => $v) { if ('gallery' == $v) { $attr = shortcode_parse_atts($matches[3][$k]); break; } } } if (!empty($attr['ids'])) { $atts = new WP_Query( array( 'post_type' => 'attachment', 'post_status' => 'inherit', 'post__in' => explode(',',$attr['ids']), 'orderby' => 'post__in' ) ); var_dump($atts); } }