Wie man eine Seitenvorlage erstellt, um alle Galerien aufzulisten?

Ich versuche ein Thema zu kodieren, wo ich eine universelle Galerieseite haben werde. Grundsätzlich wie:

http://www.engadget.com/galleries/

Aber ich weiß nicht, wie ich alle Galerien nennen würde. Ich brauche die Galerien als benutzerdefinierte Post-Typen (also habe ich domain.com/gallery/title-of-gallery/), aber die Galerien müssen auch in der Lage sein, über in Posts eingefügt zu werden (oder so ähnlich). . Außerdem müssen den Galerien eine Kategorie zugewiesen sein (wie Reviews oder Previews).

Ich muss auch in der Lage sein, mehrere Galerien in einen Beitrag für Bewertungen einzufügen (wo mehrere Galerien benötigt werden).

Hat jemand eine Möglichkeit, das zu erreichen?

Solutions Collecting From Web of "Wie man eine Seitenvorlage erstellt, um alle Galerien aufzulisten?"

Die zu Grunde liegende Frage lautet: Wie kann ich alle Posts mit Bildergalerien abfragen? (Wenn Sie eine solche Abfrage erstellt haben, ist das Erstellen einer benutzerdefinierten Schablonenseite zum Durchlaufen dieser Übung ziemlich trivial).

Eine Methode wäre:

  1. Benutzerdefinierte Abfrage von mime_type mit einem mime_type des image
  2. Durchstreichen Sie sie und fügen Sie $post->post_parent zu einem Array hinzu
  3. Benutzerdefinierte Abfrage von Posts, wobei das obige Array von Post-IDs als post__in
  4. Gehe durch sie hindurch und gib aus, was immer du möchtest

Vielleicht so:

 < ?php // Custom query args for image attachments $image_attachments_query_args = array( 'post_type' => 'attachment', 'mime_type' => 'image' ); // Query image attachments $image_attachments = new WP_Query( $image_attachments_query_args ); // Loop through them and get parent post IDs $gallery_post_ids = array(); foreach ( $image_attachments as $image_attachment ) { $gallery_post_ids[] = $image_attachment->post_parent; } // Custom query args for gallery posts $gallery_posts_query_args = array( 'post__in' => $gallery_post_ids ); // Query gallery posts $gallery_posts = new WP_Query( $gallery_posts_query_args ); // Loop through gallery posts if ( $gallery_posts->have_posts() ) : while ( $gallery_posts->have_posts() ) : $gallery_posts->the_post(); // Loop output goes here endwhile; endif; wp_reset_postdata(); ?> 

Beachten Sie, dass dadurch alle Posts mit einem einzigen Bildanhang abgerufen werden. Sie könnten sich beim Durchschleifen von Bildanhängen vielleicht etwas einfallen lassen und etwas tun wie:

 // Placeholder array for IDs $temp_post_ids(); // Final array for gallery post IDs $gallery_post_ids = array(); // Loop through them and get parent post IDs foreach ( $image_attachments as $image_attachment ) { // Add ID to the placeholder array $temp_post_ids[] = $image_attachment->post_parent; // If this post ID has multiple image attachments, // add it to the gallery posts query; // This will prevent posts with only a single // attached image from being queried in the next step if ( in_array( $image_attachment->post_parent, $temp_post_ids ) ) { $gallery_post_ids[] = $image_attachment->post_parent; } }