Für Menschen · Seien Sie begeistert und Sie werden begeistern !

Mit Hilfe des Sprachschlüssel kann nicht nur das Blog ausgezeichnet werden, sondern auch der Feed: <language>en</language>.
Auch WordPress hat dafür eine Option vorgesehen; gibt dem Anwender aber keine einfache Möglichkeit der Pflege in die Hand.
Sinnvoll ist es aber, den Schlüssel nach dem Codec zu setzen und daher hier einige Möglichkeiten das zu tun.
Direkt in der Datenbank den Schlüssel (option_name) rss_language suchen und den Wert deiner Sprache pflegen, zum Beispiel de. Die Schlüsselwerte findet man beispielsweise auf dieser Seite.
Alternativ kann man das ganze auch mit Hilfe einer Funktion von WordPress setzen. Dazu genügt folgender Syntax, einfach in der functions.php des Themes abgelegt und ein Aufruf des Admin oder Frontend genügt; einmalig reicht um den Wert zu setzen. Danach kann der Code wieder aus dem Template entfernt werden.
function update_rss_language() {
update_option( 'rss_language', 'de' );
}
add_action( 'admin_init', 'update_rss_language' );
Die letzte Möglichkeit ist ein wenig komfortabler und legt ein weiteres Feld im Bereich der Einstellungen - Lesen ab. Dort gibt es nun ein weiteres Feld, welches es erlaubt, den Wert zu pflegen.

Der folgende Code muss dazu in einem Plugin oder in der functions.php des aktiven Themes abgelegt werden. Aktuell habe ich mal den Code inkl. der Kommentare abgelegt, so dass man es direkt als Plugin nutzen kann; copy/paste in eine PHP-Datei und in den Ordner wp-content/plugins kompieren. Im Anschluss kann man das Plugin im Backend von WordPress aktivieren.
<?php
/*
Plugin Name: RSS Language
Plugin URI: http://bueltge.de/wp-landingsites-de-plugin/181/
Description: Add options field for rss language
Version: 1.0
Author: Frank Bültge
License: GNU
Author URI: http://bueltge.de/
*/
function rss_language_string() {
?>
<input name="rss_language" type="text" id="rss_language" value="<?php form_option('rss_language'); ?>" class="regular-text" />
<span class="description"><?php _e('RSS supports multiple languages through the language element, which contains a short code that identifies that the natural language employed in the channel. See on this table for your <a href="http://www.rssboard.org/rss-language-codes#table">language codes</a>.'); ?></span>
<?php
}
function rss_language_admin_init() {
register_setting( 'reading', 'rss_language' );
add_settings_field( 'rss_language', __('RSS Language Code'), 'rss_language_string', 'reading');
}
add_action( 'admin_init', 'rss_language_admin_init' );
?>
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 980 Beiträge, 18722 Kommentare in 14 Kategorien und 464 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet. Erstellt mit ♥ zum Befüllen und Erhalten.
Design und Code ist unter Copyright
© 2001 - 2012 bueltge.de [by:ltge.de]
13. Dezember 2009 um 12:05
Das ist mal wieder Wahnsinn Frank, was du hier an Tipps & Tricks für WordPress schreibst. Kannst du gerne mal öfters machen.
13. Dezember 2009 um 17:10
Vielen Dank für diesen Tipp!
Ich bin zufälligerweise seit gestern auf der Suche nach so etwas!
14. Dezember 2009 um 09:02
Vielen Dank,
immer sehr nützlich, deine Tipps zu WordPress. Haben mir schon sehr oft weitergeholfen.
Gruß,
Matthias
14. Dezember 2009 um 09:57
Herzlichen Dank!
16. Februar 2010 um 23:26
Danke!
Genau was ich brauchte
14. Juli 2010 um 20:32
Wird diese Einstellung in der aktuellen WordPress 3.0 DE Version auch noch benötigt oder ist das dort schon berücksichtigt?
15. Juli 2010 um 08:30
@Stefan: nein, dies muss man auch weiterhin tun.
9. September 2010 um 10:02
Vielen Dank für Deine immer hilfreichen Tipps, Frank. Die englische Spracheinstellung habe ich entdeckt, als plötzlich mein Feed lt. Feed Validator nicht mehr valide war. Also habe ich es mit Deiner Hook Lösung geändert.
Allerdings war das nicht der monierte Fehler. Ich finde bei Google & Co. dafür keine Lösung. Offensichtlich ist es der doppelte "title" Eintrag. Woher der plötzlich kommt - vorher war alles OK - ist mir schleierhaft. Und ihn wegbekommen schaffe ich auch nicht. Hast Du ein Rat oder Tipp? (Ich bin WordPress Anfänger und nach Deinem Videokurs von WP begeistert und von Raidweaver (Mac) umgestiegen. Allerdings ist mir so manches noch sehr räselhaft.)
Hier das Ergebnis des Feed Validator:
This feed does not validate.
*
line 12, column 23: Undefined title element: title (2 occurrences) [help]
imagefilm24.com
^
*
line 14, column 1: Undefined title element: link (2 occurrences) [help]
<atom:link href="http://www.imagefilm24.com/feed/" rel="self" type="applica ...
^
Source:
http://www.imagefilm24.com/feed/1.
2.
10.
11.
12. imagefilm24.com
13.
14.
15.
http://www.imagefilm24.com16. Filme für geschäftlichen Erfolg
17. Wed, 08 Sep 2010 22:36:20 +0000
18. de
19. hourly
20. 1
9. September 2010 um 10:29
@Heiner: in deinem Feed ist ein Tag zu viel
<title>imagefilm24.com<title></title>Vermutlich kommt der von einem Plugin oder dem Theme, daher kannst du nur alles deaktivieren und nach und nach suchen, woher es kommt. Alternativ könnte man den Hook in deinen Plugins suchen, aber das ist für Einsteiger eher schwierig.
10. September 2010 um 17:32
@Frank: Vielen Dank für Deinen Hinweis. Es lag am Theme. Ich musste nur eine Zeile ändern und schon ist alles wieder in Butter.
5. November 2010 um 20:12
Vielen Dank!
Genau das habe ich gesucht, auch wenn ich mir als php-anfänger mal gleich die functions.php zerschossen hatte... aber nach kurzem probieren habe ich es hinbekommen.
5. März 2011 um 13:56
Danke Frank und ich habe mir einen Wolf gesucht wie ich das ändern kann aber wie so oft findet man auf Deinem Blog die Lösung für fast jedes WP Problemchen
2. Juli 2011 um 12:43
Hallo Frank,
ich nutze WP als mehrsprachiges System und war mit Deiner starren Lösung nicht ganz zufrieden. Ich nutze WPML und verwende zum Anpassen daher einfach folgende Zeilen in der functions.php
function change_rss_lang(){return ICL_LANGUAGE_CODE;
}
add_filter('pre_option_rss_language', 'change_rss_lang');
für die Nutzung ohne WPML kann man ja auf die WP-eigene Konstante zurück greifen:
function change_rss_lang(){return WP_LANG;
}
add_filter('pre_option_rss_language', 'change_rss_lang');
Trotzdem Danke für den ersten Beitrag zu meiner Recherche.
Gruß Carsten