Post-Thumbnails in der Artikelansicht

Mit WordPress Version 2.9 wurde die Funktion der Post Thumbnail eingeführt. Über diese Funktion und dessen Randthemen wurde bereits hier und in anderen Blogs viel geschrieben. Von Vorteil empfinde ich es aber, wenn man direkt in der Übersicht der Artikel und Seiten das zugeordnete Thumbnail sieht, so dass man leicht die Verwendung zuordnen kann. Daher möchte ich einen kleinen Codeschnippsel vorstellen, der genau das macht.

Mit WordPress Version 2.9 wurde die Funktion der Post Thumbnail eingeführt. Über diese Funktion und dessen Randthemen wurde bereits hier und in anderen Blogs viel geschrieben. Von Vorteil empfinde ich es aber, wenn man direkt in der Übersicht der Artikel und Seiten das zugeordnete Thumbnail sieht, so dass man leicht die Verwendung zuordnen kann. Daher möchte ich einen kleinen Codeschnippsel vorstellen, der genau das macht.

Die Funktion habe ich noch ein wenig ausgebaut, so dass nicht nur das Post Thumbnail gezogen wird, sondern wenn dieses nicht vergeben wurde, aber Bilder über die Upload-Funktion zum Post zugeordnet wurden, dann wird das erste Bild dieser Bilder gezogen. Dies ist vor allem dann interessant, wenn man vor WordPress 2.9 mit den Bildern aus der Mediathek das gleiche Ziel erreicht hat, wie mit der neuen Funktion des Post Thumbnail.

Pos Thumbnail in der Übersicht der Beiträge

Der obige Screenshot sollte verdeutlichen, was die kleine Erweiterung macht. Der folgende Code muss lediglich in ein Plugin ausgelagert oder in die functions.php des Themes kopiert werden.


if ( !function_exists('fb_AddThumbColumn') && function_exists('add_theme_support') ) {

	// for post and page
	add_theme_support('post-thumbnails', array( 'post', 'page' ) );

	function fb_AddThumbColumn($cols) {

		$cols['thumbnail'] = __('Thumbnail');

		return $cols;
	}

	function fb_AddThumbValue($column_name, $post_id) {

			$width = (int) 35;
			$height = (int) 35;

			if ( 'thumbnail' == $column_name ) {
				// thumbnail of WP 2.9
				$thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
				// image from gallery
				$attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
				if ($thumbnail_id)
					$thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
				elseif ($attachments) {
					foreach ( $attachments as $attachment_id => $attachment ) {
						$thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
					}
				}
					if ( isset($thumb) && $thumb ) {
						echo $thumb;
					} else {
						echo __('None');
					}
			}
	}

	add_filter( 'manage_posts_columns', 'fb_AddThumbColumn' );
	add_action( 'manage_posts_custom_column', 'fb_AddThumbValue', 10, 2 );
}

Comments are closed.