Copyright-Hinweise mit Benutzerdefiniertem Feld

... auch im Feed ausgeben

Der Artikel besteht aus 595 Wörtern. Geschätzte Lesezeit: 02:22 Minuten

wordpress-Bildschirm

In meinem neuen Magazin-Blog benutze ich wie hier für die Artikel Titelbilder. Stammen die meisten auf diesem Blog von pixabay kommen die Fotos im Magazin jedoch meist von pixelio.de. Und die Datenbank verlangt einen Copyright-Hinweis im Artikel. Das realisiere ich mit Hilfe der Benutzerdefinierten Felder

Wer fremde Fotos in seiner Webseite / seinem Blog verwendet, muss hierzulande einen ©-Hinweis in der Nähe des verwendeten Fotos hinterlegen.

Das kann man natürlich in unterschiedlicher Art und Weise gestalten. Der eine klemmt den Hinweis gleich als Bildunterschrift unter das jeweilige Foto. Ein anderer schreibt am Ende des Artikels den jeweiligen Hinweis hinzu. Und ich verwende dafür die Benutzerdefinierten Felder. Was - wie ich denke - den Vorteil hat, das ich eine über die style.css formatierte Ausgabe habe, ohne html-Code im Beitrag nutzen zu müssen.

Dazu habe ich mir zwei Felder erstellt. Eines habe ich Pixelio benannt, das andere einfach Copyright.

Der Code für die Ausgabe im Artikel sieht dann folgender Maßen aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Pixelio-Hinweis für die Posts
function Pixelio() {
	global $id, $post_meta_cache;
 
	if ($pixelio = get_post_custom_values('Pixelio')) {
		foreach ($pixelio_values as $key => $value) {
			echo "Artikelbild: $value / pixelio.de";
		}
	}
}
 
//Copyright-Hinweis für die Posts
function Copyright() {
	global $id, $post_meta_cache;
 
	if ($copyright_values = get_post_custom_values('Copyright')) {
		foreach ($copyright_values as $key => $value) {
			echo "Artikelbild: © $value";
		}
	}
}

Diesen Code setze ich als Modul im Toolbox-Plugin von Sergej ein, um ihn überall gleich griffbereit zu haben und damit ich ihn nicht jedesmal in die functions.php einbauen muss.

Der Code ist recht einfach:

Die Zeilen 2 und 13 definieren den Funktionsnamen. in Zeile 3 und 14 wird auf die globale ID und den post_meta-Cache zurückgegriffen. In den Zeilen 5 und 6, bzw. 16 und 17 wird geprüft, ob das jeweilige Benutzerdefinierte Feld einen Wert enthält. Ist das der Fall, wird der Inhalt von Zeile 7 bzw. 18 ausgegeben. Dabei kann man vor dem Wert value oder auch dahinter noch selber definierten Text schreiben.

Enthält eines der Felder keinen Wert wird später natürlich auch nichts ausgegeben.

In der Themedatei, die für die Ausgabe der einzelnen Artikelseiten zuständig ist, muss natürlich die Ausgabe noch explizit hinzugefügt werden. Hier in diesem Theme ist es die content-single.php. Und das wird mit folgendem Code getan:

<div class="pixelio"><?php if (function_exists('Pixelio')) { Pixelio(); } ?></div>
			<div class="pixelio"><?php if (function_exists('Copyright')) { Copyright(); } ?></div>

Auch hier gilt natürlich: Ist das Benutzerdefinierte Feld leer, erfolgt auch keine Ausgabe des ihm zugewiesenen Codes.

Copyright-Angabe muss auch im Feed erfolgen

Doch damit sind wir noch nicht fertig, sofern wir die Artikelbilder auch im Feed anzeigen lassen. Bei mir ist dies der Fall! Schließlich liest manch ein Freund des jeweiligen Blogs diesen nur im Feed. Deshalb gehört hier auch ein entsprechender Hinweis angebracht.

Das regelt man mit dem folgenden Code, den ich bei wpbeginners gefunden habe.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Benutzerdefinierte Felder für die Feeds
function wpbeginner_postrss($content) {
global $wp_query;
$postid = $wp_query->post->ID;
$pix = get_post_meta($postid, 'Pixelio', true);
$copy = get_post_meta($postid, 'Copyright', true);
if(is_feed()) {
if($pix !== '') {
$content = $content."<br /><br /><div class='pixelio'>Artikelbild © by ".$pix." / pixelio.de</div>
";
}
elseif ($copy !== '') {
$content = $content."<br /><br /><div class='pixelio'>Artikelbild © by ".$copy."</div>
";
}
else {
$content = $content;
}
}
return $content;
}
add_filter('the_excerpt_rss', 'wpbeginner_postrss');

Allerdings musste ich mir die Befehle aus den dort zu findenden ersten beiden Codeblöcken zusammenbauen, da der erste Code ja nur ein Feld abdeckt.

Wichtig ist in diesem Zusammenhang, das man die folgende Zeile aus dem Codeblock entfernt, da die Copyright-Angabe im Feed ansonsten zweimal erfolgt

add_filter('the_content', 'wpbeginner_postrss');

Vielleicht kann der eine oder andere von Euch mit diesen Codeschnippseln etwas anfangen.

Über Marcus 702 Artikel
Ich freue mich über Deinen Besuch auf meinem Blog!Wenn Dir der Artikel gefallen hat, teile ihn doch mit anderen und hinterlasse Deine Meinung.Mehr über mich gibt es hier zu lesen

1 Kommentar

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*


CommentLuv - verlinke einen deiner Blog-Artikel