WPDB Mehrere Website-Beiträge und erhalten vorgestellte Bilder

Ich verwende den folgenden Code, um 5 WordPress-Sites nach ihren Posts abzufragen, sie zu einem Array zusammenzufassen, das Array nach Datum zu sortieren und sie dann anzuzeigen:

//SITE 1 $mydb = new wpdb('xxxx','xxxx','xxxx','localhost'); if($mydb) { $query1 = $mydb->get_results("SELECT * FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish'", OBJECT); } $mydb->flush(); //SITE 2 $mydb = new wpdb('xxxx','xxxx','xxxx','localhost'); if($mydb) { $query2 = $mydb->get_results("SELECT * FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish'", OBJECT); } $mydb->flush(); //SITE 3 $mydb = new wpdb('xxxx','xxxx','xxxx','localhost'); if($mydb) { $query3 = $mydb->get_results("SELECT * FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish'", OBJECT); } $mydb->flush(); //SITE 4 $mydb = new wpdb('xxxx','xxxx','xxxx','localhost'); if($mydb) { $query4 = $mydb->get_results("SELECT * FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish'", OBJECT); } $mydb->flush(); //SITE 5 $mydb = new wpdb('xxxx','xxxx','xxxx','localhost'); if($mydb) { $query5 = $mydb->get_results("SELECT * FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish'", OBJECT); } $mydb->flush(); //MERGE ARRAYS $allsitearrays = array_merge($query1, $query2, $query3, $query4, $query5); //SORT BY DATE function cmp($a, $b) { if ($a->post_date == $b->post_date) { return 0; } else { return $a->post_date post_date ? 1 : -1; // reverse order } } usort($allsitearrays, 'cmp'); //OUTPUT if ( $allsitearrays ): global $post; foreach($allsitearrays as $post) { //OUTPUT HERE } endif; 

Das funktioniert großartig, außer dass ich das vorgestellte Bild des Posts mit dieser Methode nicht abrufen kann. Ich kann native functionen wie wp_get_attachment_image_src nicht verwenden, und ich habe das Gefühl, die DB wieder zu wp_get_attachment_image_src , während ich in der Schleife für jeden Beitrag bin, um zu versuchen, zu finden, dass postmeta schließlich über Bord ist und viel zu viele Abfragen hat.

Gibt es eine Möglichkeit, die Post-Metas der Posts abzurufen, die ich in der ersten Abfrage abfrage, oder eine Methode, die ich verwenden kann, um so viele Abfragen zu vermeiden?

Solutions Collecting From Web of "WPDB Mehrere Website-Beiträge und erhalten vorgestellte Bilder"

Auf diese Weise können Sie die Post- _wp_attached_file der _wp_attached_file , indem Sie der _wp_attached_file Tabelle _wp_attached_file und den Meta-Wert _wp_attached_file .

Versuche dies:

 $mydb->get_results( select a.*, thumb.meta_value from wp_posts a left join (select b.post_id, c.meta_value from wp_postmeta b, wp_postmeta c where b.meta_key = '_thumbnail_id' and b.meta_value = c.post_id and c.meta_key = '_wp_attached_file') as thumb on thumb.post_id = a.ID where a.post_type = 'post' and a.post_status = 'publish', OBJECT );