Problem: wp_query gibt alle Bilder vor Ort aus

Ich habe Probleme mit einer Abfrage. Ich möchte die Bilder an einen einzelnen Beitrag der Typvermietung anhängen lassen.

Meine Abfrage ist errorshaft, da alle Bilder auf der gesamten Site ausgegeben werden:

$image_query = new WP_Query( array( 'post_type' => 'attachment', 'post_status' => 'inherit', 'post_mime_type' => 'image', 'posts_per_page' => -1, 'post_parent' => $rental->post->ID, 'order' => 'DESC' ) ); if( $image_query->have_posts() ){ while( $image_query->have_posts() ) { $image_query->the_post(); $imgurl = wp_get_attachment_url( get_the_ID() ); echo '
'; echo ''; echo '
'; } wp_reset_postdata(); }

Irgendwelche Ideen, wie ich das einstellen kann, um nur die Bilder an den aktuellen Beitrag anzuhängen?

Solutions Collecting From Web of "Problem: wp_query gibt alle Bilder vor Ort aus"

Ihr Problem ist der Parameter ” post_parent . Wenn dieser Parameter auf 0 oder einen falschen Wert wie “null” gesetzt ist, gibt Ihre Abfrage alle Posts auf höchster Ebene zurück.

Sie müssen also nur sicherstellen, dass $ rental-> post-> ID einen Wert hat, oder verwenden Sie einen anderen Ansatz wie die function get_the_ID() .

Ich kann dir wirklich nicht mehr sagen, da du den Teil, in dem du $rental nicht mitgezählt hast

 $image_query = new WP_Query( array( 'post_type' => 'attachment', 'post_status' => 'inherit', 'posts_per_page' => -1, 'post_parent' => get_the_ID(), // your issue here lays ) ); 

Weitere Informationen finden Sie in den Dokumenten: https://developer.wordpress.org/reference/classes/wp_query/#post-page-parameters

Ja, das hat geholfen. Mir ist aufgefallen, dass die function bei einem Standard Post einwandfrei funktioniert. Ich habe im Grunde die function in functions.php verschoben:

 function get_rental_carousel_images($rental_id) { // loosely based on http://martyspellerberg.com/2011/11/outputting-the-wordpress-attachments-gallery/ global $rental; $images = get_children( array( 'post_parent' => $rental_id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ); if ($images) : foreach ($images as $attachment_id => $image) : $img_url = wp_get_attachment_url( $image->ID ); ?>  < ?php endforeach; ?> < ?php endif; 

und dann Bilder in meiner Vorlage wie folgt ausgeben:

< ?php get_rental_carousel_images( get_the_ID() ); ?>