WordPress Plugin HowTo: benutzerdefinierte Felder im RSS Feed
PhotoQ ist an und für sich schon ein beeindruckend mächtiges Plugin um Fotos zu Verwalten und zu Posten. Allerdings musste ich feststellen, dass die Beschreibungstexte, die man für PhotoQ-Artikel eintragen kann im RSS Feed nicht auftauchen da sie in einem Benutzerdefinierten Feld gepflegt werden. Daher gibts jetzt ein mini HowTo wie man benutzerdefinierte Felder in RSS Feeds einbindet.
Nötige Funktionen und Filter
Die WordPress Funktion, die für das erstellen des Tags verantwortlich ist lautet the_excerpt_rss. Erfreulicher Weise kann man an diese Funktion mittels add_filter einen Filter einklinken. Das wär schonmal die halbe Miete.
Um an die benutzerdefinierten Felder heran zu kommen bietet WordPress die Funktion get_post_custom, die für den gegenwärtig behandelten Post alle benutzerdefinierten Felder als Array zurückgibt. Also müssen wir das jetzt nur noch zusammenlöten.
Um an die benutzerdefinierten Felder heran zu kommen bietet WordPress die Funktion get_post_custom, die für den gegenwärtig behandelten Post alle benutzerdefinierten Felder als Array zurückgibt. Also müssen wir das jetzt nur noch zusammenlöten.
function photoQ_extrafields($content)
{
$custom = get_post_custom();
if (isset($custom['photoQDescr'])) {
$content .= implode(" ", $custom['photoQDescr']);
}
return $content;
}
add_filter('the_excerpt_rss', 'photoQ_extrafields');
Grundsätzlich kann man auf diese Weise jedes beliebige benutzerdefinierte Feld anhängen. Die Feld-Namen lassen sich ganz einfach herausfinden, indem man einen neuen Artikel anlegt oder einen bestehenden bearbeitet und die DropDown Liste der benutzerdefinierten Felder aufklappt. Dort sind alle Feldnamen, die verwendet werden zu finden.
Wichtig zu wissen wäre noch, dass die Felder durchaus mehrfach in einem Artikel vorkommen können und sie daher als numerisch indexiertes Array zurückgegeben werden. Daher auch im obigen Code
Wichtig zu wissen wäre noch, dass die Felder durchaus mehrfach in einem Artikel vorkommen können und sie daher als numerisch indexiertes Array zurückgegeben werden. Daher auch im obigen Code
implode( " ", $custom['photoQDescr'])
.Ein Plugin draus machen
Stellt sich nur noch die Frage, wohin mit der Funktion. Auch wenn es nur die paar Zeilen Code sind dürfte es sich als Plugin ganz wohl fühlen und es lässt sich komfortabel ein und ausschalten.
Dafür muss die Funktion lediglich in einer separaten PHP Datei angelegt und mit dem nötigen Komentarblock im Kopfbereich versehen werden. Als Vorlage kann man da ganz gut den Block aus dem HelloDolly Plugin verwenden.
Das Plugin braucht in dem Fall natürlich noch einen Namen, der eindeutig ist. Ich hab das Ding einfach völlig unkreativ pqrss getauft.
Dafür muss die Funktion lediglich in einer separaten PHP Datei angelegt und mit dem nötigen Komentarblock im Kopfbereich versehen werden. Als Vorlage kann man da ganz gut den Block aus dem HelloDolly Plugin verwenden.
Das Plugin braucht in dem Fall natürlich noch einen Namen, der eindeutig ist. Ich hab das Ding einfach völlig unkreativ pqrss getauft.
<?php
/**
* @package PQRSS
* @version 0.1
*/
/*
Plugin
Name: PQRSSPlugin
URI: http://wordpress.org/#
Description: Adds PhotoQ_descr custom Field to your RSS items.
Author: Marc BachVersion: 0.1
Author URI: http://www.avanzu.de
*/
Anschließend einfach in einem gleichnamigen ordner Speichern und in das Verzeichnis /wp-content/plugins/ hochladen. Dann kann man es in der Plugin Verwaltung aktivieren und fertig.
Keine Kommentare