« »

WordPress – Titelbild für Beiträge

Juni 23rd, 2010

Bilder in einen Beitrag einbinden ist nichts Neues und keine schwere Sache. Aber ein Titelbild festzulegen war für mich etwas Neues aber nicht schwere.

Um einem Beitrag die Funktion zu geben Titelbilder festzulegen wird der Befehl add_theme_support( 'post-thumbnails' ) in die functions.php Eingefügt.

1
2
3
4
add_action( 'after_setup_theme', 'theme_setup' );
function theme_setup() {
	add_theme_support( 'post-thumbnails' );
}

Jetzt können wir schon in unserem Beitrag ein Bild als Titelbild festlegen.

Nun brauchen wir noch eine Funktion die uns das Bild ausgibt und wir müssen ein Standardbild festlegen.
Das Standardbild wird folgendermaßen festegelegt. (der Code wird in die funtions.php eingefügt)

1
2
3
4
5
6
7
define( 'HEADER_TEXTCOLOR', '' );
define( 'NO_HEADER_TEXT', true );
define( 'HEADER_IMAGE', '%s/images/headers/default_header.jpg' ); // %s steht für das Template Verzeichnis
define( 'HEADER_IMAGE_WIDTH', apply_filters( 'theme_header_img_width', 710 ) );
define( 'HEADER_IMAGE_HEIGHT', apply_filters( 'theme_header_img_height', 300 ) );
set_post_thumbnail_size( HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT, true );
add_custom_image_header('','');

Bitte ändert den Wert HEADER_IMAGE und gebt an wo euer Standard Titelbild liegt.

Jetzt kommt eine Funktion die uns den Pfad und Titel des Bildes zurück gibt.

1
2
3
4
5
6
7
8
9
10
11
12
13
add_filter('header_img', get_header_img);
function get_header_img($img) {
	global $post;
	if ( is_singular() && has_post_thumbnail( $post->ID ) && ( $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' ) ) && $image[1] >= HEADER_IMAGE_WIDTH ) :
		$image_data = get_posts(array('post_type'=>'attachment','include'=> get_post_thumbnail_id( $post->ID )));
		$img['src'] = $image[0];
		$img['title'] = $image_data->post_title;
	else :
		$img['src'] = get_header_image();
		$img['title'] = '';
	endif;
	return($img);
}

Der Filter header_img den wir hier ansprechen fügen wir noch an die Stelle ein an der das Bild angezeigt werden soll.
In den meisten Fällen die header.php.

1
2
3
4
$header_img = apply_filters('header_img',array());
if($header_img) :
?><img src="<?php echo $header_img ['src']; ?>" alt="<?php echo $header_img['title']; ?>" title="<?php echo $header_img['title']; ?>" /><?php
endif;

So nun wird schon überall unser Standardbild angezeigt wenn wir in einem Beitrag ein Titelbild hochladen und festlegen. Wird auf der Seite des Beitrages unser festgelegtes Bild angezeigt.

Schreiben Sie einen Kommentar