WordPress Artikelbild automatisch setzen

Die Artikelbilder automatisch setzen kann eine schöne uns sinnvolle Erweiterung sein, ein kleines Plugin in WordPress genügt und die Lösung steht.

Wer in seinem WordPress Blog mit dem Artikelbild arbeitet und immer eines setzen will, muss - je nach Layout-Umsetzung, der kann mit Hilfe eines kleines Plugins das Setzen automatisch erledigen lassen.
Das folgenden kleine Plugin tut dies, wenn kein Featured Image gesetzt ist und schnappt sich das erste Bild, welches zum Artikel hochgeladen wurde.

WordPress Backend, Artikelbild setzen

Als weitere Alternative könnte man ein weiteres Bild als Standard definieren, quasi als Fallback-Lösung wenn kein Bild zum Artikel vorhanden ist.
Immer wenn der Beitrag gespeichert bzw. aktualisiert wird, wird das Bild überprüft und ggf. gesetzt.
Weitere Lösungen um mit den Bildern und Daten aus der Mediathek zu arbeiten findet ihr in einem weiteren Beitrag hier im Blog. Soll es dazu dann noch die Kontrolle in der Artikelansicht geben, dann ebenso einige Zeilen mehr ergänzen, siehe Artikel "Post-Thumbnails in der Artikelansicht". Alternativ habe ich das Plugin erweitert und ihr könnt es euch in diesem Gist holen.


<?php
/**
 * Plugin Name: Set featured image
 * Plugin URI:  https://bueltge.de
 * Description: Set featureed image automaticly on save post/page
 * Version:     1.0.0
 * Author:      Frank Bültge
 * Author URI:  https://bueltge.de
 * License:     GPLv3
 */

// This file is not called from WordPress. We don't like that.
! defined( 'ABSPATH' ) and exit;

if ( ! function_exists( 'fb_set_featured_image' ) ) {
	
	add_action( 'save_post', 'fb_set_featured_image' );
	function fb_set_featured_image() {
			
			if ( ! isset( $GLOBALS['post']->ID ) )
				return NULL;
				
			if ( has_post_thumbnail( get_the_ID() ) )
				return NULL;
			
			$args = array(
				'numberposts'    => 1,
				'order'          => 'ASC', // DESC for the last image
				'post_mime_type' => 'image',
				'post_parent'    => get_the_ID(),
				'post_status'    => NULL,
				'post_type'      => 'attachment'
			);
			
			$attached_image = get_children( $args );
			if ( $attached_image ) {
				foreach ( $attached_image as $attachment_id => $attachment )
					set_post_thumbnail( get_the_ID(), $attachment_id );
			}
			
	}
	
}

Comments are closed.