get_children gibt ältere Bilder zurück

Ich lese alle angehängten Bilder zu veröffentlichten Posts & Seiten, jedoch werden ältere / entfernte angehängte Bilder aufgelistet. Ich frage mich, ob dies von Revisionen abhängt (die überhaupt nicht berücksichtigt werden sollten)

Code:

$args = array( 'post_type' => array('post','page'), 'post_status' => 'publish', 'posts_per_page' => '-1' ); query_posts( $args ); while ( have_posts() ) { the_post(); $post = get_post(get_the_ID()); $attachments = get_children(array('post_parent' => $post->ID, 'post_status' => 'any', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'numberposts' => '-1', 'orderby' => 'menu_order ID')); foreach ($attachments as $att_id => $attachment) { $medium_img_url = wp_get_attachment_image_src($attachment->ID,'medium'); $image = (isset($medium_img_url[0])) ? $medium_img_url[0] : ''; ?> 
<a target="_blank" href="https://wordpress.stackexchange.com/questions/290591/get-children-returns-older-images/"><img src="https://wordpress.stackexchange.com/questions/290591/get-children-returns-older-images/"/>
<?php } } wp_reset_postdata();

Solutions Collecting From Web of "get_children gibt ältere Bilder zurück"

Dein Problem ist hier:

  'order' => 'ASC', 'numberposts' => '-1', 'orderby' => 'menu_order ID')); 

Du hast darum gebeten, dass sie nach der Reihenfolge des Menüs und dann nach der ID sortiert werden. Dann verlangten Sie, dass sie in aufsteigender Reihenfolge gegeben werden.

Da neuere Posts höhere IDs als ältere Posts haben, werden ältere Posts zuerst angezeigt. Verwandle den ASC in DESC und du wirst wahrscheinlich bekommen, was du willst.

Weitere Hinweise:

  • Verwenden query_posts niemals query_posts , es gibt keine gültige Verwendung dieser function, die nicht mit WP_Query oder dem pre_get_posts Filter #bestpractice #headache #eldritchhorrors #unforgcontentsins durchgeführt werden kann
  • Machen Sie sich nicht die Mühe mit allen get_pages , wie zum Beispiel get_pages , get_children , etc, die alle Wrapper von WP_Query , die zusätzliche Komplikationen verursachen. Sie übergeben die Eltern-ID ohnehin #bestpractice
  • if ( have_posts() ) { immer ein if ( have_posts() ) { check, wenn keine Posts gefunden wurden, würde dir nichts gesagt werden, lass mich fragen was schief gelaufen ist #debugging
  • Benutze nicht -1 , setze eine super hohe Zahl, aber setze niemals unbegrenzt. Selbst wenn Sie niemals erwarten, diese Nummer zu erreichen, stellen Sie sie trotzdem ein. Seitenumbruch hat auch performancesvorteile, und Ihr Server kann nur so viel im Speicher halten und hat so viel Zeit, um die Seite zu generieren, bevor es das Ausführungszeitlimit erreicht. #performance #scaling #hightraffic
  • Escape deine Ausgabe, nicht echo $url , echo esc_url( $url ) , das garantiert, dass es in der Tat eine URL ist, und dass nichts bösartiger von einem Hacker #Security snook in