Der folgende Code durchsucht, falls es kein Beitragsbild gibt, den betroffenen Beitrag nach “zu diesem Beitrag hochgeladen[en]” Bildern und zeigt das erste gefundene Bild als Beitragsbild an:
function auto_set_featured_image() {
global $post;
$featured_image_exists = has_post_thumbnail($post->ID);
if (!$featured_image_exists) {
$attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
if ($attached_image) {
foreach ($attached_image as $attachment_id => $attachment) {set_post_thumbnail($post->ID, $attachment_id);}
}
}
}
add_action('the_post', 'auto_set_featured_image');Standard-Beitragsbild (Fallback)
Um ein Standard-Bild anzuzeigen, das man vorher auswählt, kann der folgende Code genutzt werden:
function fallback_auto_set_featured_image() {
global $post;
$featured_image_exists = has_post_thumbnail($post->ID);
if (!$featured_image_exists) {
$fallback_image_id = 3877;
set_post_thumbnail($post->ID, $fallback_image_id);
}
}
add_action('the_post', 'fallback_auto_set_featured_image');Die ID des Bildes musst du natürlich anpassen. Du findest sie, in der URL zur Bearbeitung eines Bildes.Der Code wirkt sich auch auf bestehende Postings aus. Wenn man das nicht möchte, kann man die Funktion an den ‘save_post’-Hook hängen, damit sie nur beim Speichern eines Beitrags ausgeführt wird. Die letzte Zeile lautet dann:
add_action('save_post', 'mytheme_auto_set_featured_image');