
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:
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 and-completely-manipulate-your-wordpress-rss-feeds/" target="_blank" rel="nofollow noopener">wpbeginners gefunden habe.
1 2 3 4 5 6 7 8 9 | //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." |
"; } elseif ($copy !== '') { $content = $content."
"; } 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.
Super, vielen Dank, bookmarke ich mir mal, denke das kann ich auch mal gut gebrauchen.