WordPress Artikelbild automatisch setzen

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 11 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

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 );
			}
			
	}
	
}

Von Frank Bültge

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.