RSS Feed
Mär 16

WordPress Core Strings ohne Verlust beim nächsten Update überschreiben

Veröffentlich am Freitag, 16. Mär 2012 in WordPress

Auf dem letzten WP Meetup Potsdam hat Caspar eine kleine Einführung in das Thema Multisite gegeben. Dabei päsentierte er auch kurz das Einrichten eines neuen Blogs im Netzwerk. Als er sich im Dashboard angemeldet hatte wies er uns auch darauf hin, dass er die Bezeichnung “Dashboard” in “Übersicht” umbenannt hat, da dies wohl für einige Kunden besser verstädnlich ist.

Der falsche Weg

Auf die Nachfrage, wie er es denn umbenannt hätte, musste er dann zugeben, dass er die originale Datei überschrieben hat. Oder er hatte sie komplett kopiert und dann den einen String geändert, das weiß ich nicht mehr so genau. Aber auf jeden Fall waren wir uns alle einige, dass dies eine sehr schlechte Lösung des Problems ist. Spätestens beim nächsten großen Update, wie z.B. bald auf Version 3.4, wird auch die Übersetzungsdatei wohl wieder überschrieben werden müssen. Alle geänderten Übersetzungen sind somit verloren und müssen erneut überschrieben werden. Ich war mit aber sehr sicher, dass es dafür eine bessere Lösung gibt.

Der richtige Weg

Vor einiger Zeit habe ich dem Artikel Lokalisierung für Child Themes am Beispiel von Thematic beschrieben, wie man in einem Child-Theme die Übersetzungen für Strings im Parent Theme überschreiben kann. Ich war mir sehr sicher, dass dies auch für die WordPress Core Strings funktionieren muss. Bei Core-Übersetzungen wird ja in den Übersetzungsfunktionen keine Domain angegeben. Daher war die erste Vermutung, dass man einfach einen leeren String für das Einbinden der Übersetzungsdatei verwenden muss. Aber das war nicht ganz korrekt. Man muss den String “default” als Parameter verwenden. Damit ist es dann möglich, eine eigene Übersetzungsdatei zu laden. In dieser Datei müssen aber nicht alle Strings enthalten sein. Es reicht aus, wenn man nur die zu überschreibenden aufführt. Die Einbindung dieser mo-Datei geschieht dann wie folgt:

load_textdomain( 'default', dirname( __FILE__ ).'/'.get_locale().'.mo' );

In diesem Beispiel befindet sich dann z.B: die Datei de_DE.mo im selben Verzeichnis wie die Datei, in die diese Zeile eingefügt wurde. Dies kann in eurem Theme aber auch in einem Plugin geschehen. Im Falle von Capsar ist es sogar am sinnvollsten, das ganze als “must-use” Plugin im Ordner /wp-contents/mu-plugins/ abzulegen. Ich habe das ganze natürlich auch mal für euch fertig vorbereitet und ihr könnt es hier herunterladen und einfach als Plugin installieren:

Download

Fazit

Auch hier hat sich wieder gezeigt, wie flexibel WordPress ist. Auch mein Grundsatz “Don’t hack the core, never!” (auf Deutsch würde man wohl sagen “Nur gucken, nicht anfassen!”) wurde dadurch mal wieder bestätigt. Ich habe bisher wirklich noch kein Problem gefunden, dass ich nicht durch ein paar Zeilen Code in der functions.php Datei oder durch ein kleines Plugin lösen konnte, ohne den Core anfassen zu müssen. Das einizige, was einem hier noch passieren könnte ist eine Änderung des zu übersetzenden Strings in einer neuen Version. Dann müsste natürlich auch die Übersetzungsdatei angepasst werden. Aber eben auch nur die wenigen Strings darin und auch nur die, die sich geändert haben.

Was haltet ihr von meiner Lösung? Hättet ihr gedacht, dass so etwas mit nur einer Zeile Code möglich ist? Habt ihr vielleicht auch ähnlich tolle Fixes parat? Über Kommentare würde ich mich wie immer sehr freuen.

Okt 31

Pflege des Backend Localization Plugins

Veröffentlich am Montag, 31. Okt 2011 in WordPress

Ich habe mir am Wochenende mal mein Backend Localization Plugin vorgenommen und dieses etwas aktualisiert. Zum einen sah die Sprach-Auswahl im Login-Formular nicht mehr besonders schön aus, da mit WordPress 3 das CSS dazu geändert wurde. Zusätzlich kamen einige neue Sprachen dazu, in die WordPress mittlerweile übersetzt ist (bzw. noch übersetzt wird). Hier mal eine Liste der neu hinzugekommenen Sprachen:

ISO 639 Name
es_CL Spanisch (Chile)
es_PE Spanisch (Peru)
es_VE Spanisch (Venezuela)
fa_AF Persisch (Afghanistan)
fy Westfriesisch
gd Schottisch-Gälisch
haw_US Hawaiisch
hy Armenisch
is_IS Isländisch
jv_ID Javanisch
kea Kabuverdianu
kk Kasachisch
kn Kannada
li Limburgisch
me_ME ???
mg_MG Malagasy
mn Mongolisch
ne_NP Nepali
nl_BE Niederländisch (Belgien)
pa_IN Panjabi
sa_IN Sanskrit
so_SO Somali
srd Sardisch
ta_LK Tamilisch (Sri Lanka)
zh_TW Chinesisch (Taiwan)

Es ist immer sehr aufwändig diese Liste zu pflegen, da ich erst einmal feststellen muss, was sich hinter dem ISO 639 Code verbirgt. Ich konnte aber bis auf einen Code alle finden. Wenn also jemand von euch weiß, welche Sprache sich hinter me_ME verbirgt, dann würde ich mich über einen Kommentar dazu sehr freuen.

Was man aber auch sehr gut an dieser Liste sehen kann ist die schnelle Verbreitung von WordPress in viele Regionen der Welt. Insgesamt enthält das offizielle Sprachdateien-Repository von WordPress mittlerweile 94 Sprachcodes. Hier ist aber z.B. für Deutschland nur die “Du-Version” enthalten. Die eigentliche Anzahl an unterschiedlichen “Sprachen” liegt also vermutlich noch um einiges höher.

Okt 18

Plugins und Sicherheit: Sicherheitslücke in Filedownload Plugin geschlossen

Veröffentlich am Dienstag, 18. Okt 2011 in WordPress

Aus gegebenem Anlass kommt heute mal ein Artikel zu einem sehr heiklen Thema: Plugins und Sicherheit. Ein mir bekannter Blog wurde letzte Woche gehackt. Anschließend konnte man auf diesem nur noch Space Invaders spielen. Glücklicherweise war es ein sehr netter Hacker, der seine Tat zugab und auch gleich erklärte, was falsch gemacht wurde und wie er damit ohne Probleme den Blog hacken konnte.

Funktion des Plugins

Die Sicherheitslücke steckte in dem Plugin Filedownload. Dieses Plugin wird eingesetzt um eine in WordPress hochgeladene Datei direkt zum Download anzubieten. In der Regel öffnet ein Browser ja eine Datei, die er direkt anzeigen kann, wie z.B. ein Bild oder eine PDF-Datei. Dieses Plugin gibt aber nun die angeforderte Datei so an den Browser zurück, dass dieser das Download-Dialogfenster öffnet und den Benutzer zum Download der Datei auffordert.

(weiterlesen …)

Okt 8

Das WP-Instant Plugin für euer Theme anpassen

Veröffentlich am Freitag, 8. Okt 2010 in WordPress

Ihr habt bestimmt alle schon die tolle neue Funktion von Google, die “Instant Suche” ausprobiert oder zumindest davon gehört. Da das wirklich eine tolle Funktion ist, habe ich mich entschlossen ein solches Plugin auch für die WordPress Community zu programmieren. Das ist aber trotz der ernormen Erweiterbarkeit von WordPress garnicht so einfach gewesen. Leider hat es ein Laie, der bisher noch keine Berührung mit Themes hatte, hier wohl auch schwer, das Plugin zum Laufen zu bekommen, da er zumindest zweimal etwas tiefer in den Quellcode einsteigen muss.

Zuerst einmal muss die originale “Search Loop” in eine Datei mit dem Namen wp-instant-search-template.php kopiert werden. Diese Datei muss dann in euer Theme Verzeichnis kopiert werden. Die “Search Loop” findet ihr in aller Regel in einer Datei mit dem Namen search.php in eurem Theme Verzeichnis. Er könnte z.B. wie folgt aussehen (aus dem alten “Default” Theme):

(weiterlesen …)

Okt 8

WP-Instant Plugin

Veröffentlich am Freitag, 8. Okt 2010 in WordPress

Dieses Plugin stellt eine Suche ähnlich der Google Instant Suche bereit.Es verwendet die Ajax.Updater Function von script.aculo.us und die Form.Element.DelayedObserver Klasse. Eine jQuery Implementierung folgt in Kürze.

Eine detailiertere Beschreibung zur Einrichtung des Plugins findet ihr hier: Das WP-Instant Plugin für euer Theme anpassen

(weiterlesen …)

Jul 25

Kau-Boy’s Opensearch Plugin

Veröffentlich am Sonntag, 25. Jul 2010 in WordPress

Dieses Plugin stellt eine Browsersuche nach der Opensearch Spezifikation bereit.

Jeder Besucher des Blog kann eine Suche zu seinem Browser hinzufügen und so sehr schnell und jeder Zeit nach einem Artikel suchen. Das Plugin muss dabei nicht konfiguriert werden. Einfach installieren und aktivieren.

(weiterlesen …)

Mai 10

Alle Plugins kompatibel zu WordPress 3.0

Veröffentlich am Montag, 10. Mai 2010 in WordPress

Ich habe heute mal die Gelegenheit genutzt und die aktuelle Beta (3.0-beta2-14526) für die kommende WordPress Version getestet. Eine gute Nachricht gibt es für alle, die Plugins von mir verwenden und auf die neue Version aktualisieren möchten. Alle Plugins konnten erfolgreich mit der aktuellen Beta getestet werden.

Da ich mich bei der Entwicklung an bestimmte Standards gehalten habe und keine als DEPRECATED (veraltet) gekennzeichnete Funktion eingesetzt habe, sollten die Plugins dann auch mit der finalen Version von WordPress 3.0 funktionieren. Ich werde aber die NIGHTLY BUILDS in regelmäßigen Abständen testen und eventuell auftretende Fehler noch vor dem Erscheinen der finalen Version von WordPress 3.0 beheben.

Solltet ihr bereits Fehler mit WP 3.0 gefunden haben oder aber einen Fehler mit einer aktuellen Version, dann teilt mir das bitte in einem Kommentar auf den Pluginseiten oder in diesem Post mit.

Ich wünsche uns allen viel Spaß mit den tollen neuen Features von WP 3.0 und hoffe, dass wir sie bald in einer finalen Version genießen können.

Jul 2

Kau-Boy’s AutoCompleter Plugin

Veröffentlich am Donnerstag, 2. Jul 2009 in WordPress

Dieses Plugin verwendet den Ajax.Autocompleter von script.aculo.us bzw. die jQuery Autocomplete Funktoin um Beiträge zu finden, die den Suchbegriff im Titel oder Inhaltstext enthalten.

Der eingegebene Text kann in den Titel der Beiträge und/oder im Inhalt gesucht werden. Es kann zusätzlich die Formatierung der Ergebnisse über eine eigene CSS Datei an den Blog angepasst werden. Es kann jeweils der Titel oder zusätzlich ein Teil des Inhalts angegeben werden, wobei hier auch die Länge des auszugebenden Inhaltes eingestellt werden kann.

(weiterlesen …)

Impressum