Legen Sie das ausgewählte Bild basierend auf dem benutzerdefinierten Feld fest

Ich habe Zehntausende von Bildern. Ich habe auch Zehntausende von Artikeln. Diese wurden beide von einem benutzerdefinierten CMS importiert.

Die Bilddateinamen sind die IDs, die sie im alten CMS hatten, zB 12345.jpg

Die Artikel haben ein benutzerdefiniertes Feld namens mainpictureid das die ID eines Bildes enthält.

Meine Frage ist, wie dieses benutzerdefinierte Feld verwendet wird, um das vorgestellte Bild eines Beitrags festzulegen. Ich habe die grundlegende Schleife, aber nicht sicher, was der einfachste Weg ist, die thumbnail ID zu erhalten

 $children = get_posts('post_type=post'); foreach ($children as $child) { $origParentID = get_post_meta($child->ID, 'mainpictureid', true); // Somehow get the ID of the image using the ID which will be the filename // $thumbID = ??? set_post_thumbnail( $child->ID, $thumbID); } 

Solutions Collecting From Web of "Legen Sie das ausgewählte Bild basierend auf dem benutzerdefinierten Feld fest"

 global $wpdb; $children = get_posts('post_type=event&numberposts=1'); foreach ($children as $child) { $origParentID = get_post_meta($child->ID, 'mainpictureid', true); $parsed_url = explode( parse_url( WP_CONTENT_URL, PHP_URL_PATH ), 'http://localhost/wp-content/uploads/2015/08/'.$origParentID.'.jpg' ); $attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->prefix}posts WHERE guid RLIKE %s;", $parsed_url[1] ) ); set_post_thumbnail( $child->ID, $attachment[0]); }