Note: Content might be outdated!
„Wie kann ich den Button-Text ändern?“ – Die Frage lese ich im Plugin-Support beinahe täglich. Funktioniert mit einem Code-Snippet, auch für andere Elemente als Buttons.
Texte ändern? Wieso eigentlich?
Bevor man Hand anlegt an die Standard-Texte eines Plugins, sollte man sich fragen: Darf ich das eigentlich?
Unter Umständen (und besonders in Deutschland) könnte das simple Ändern eines Button-Textes nämlich teure rechtliche Konsequenzen haben.
Die zweite Frage müsste lauten: Sollte ich?
Bei etlichen Plugins werden die Texte des User Interface (UI) von Leuten gedichtet, die sich tatsächlich damit auskennen und ganz genau wissen, warum ein kurzer Text einen bestimmten Wortlaut haben sollte. Professionalität ist selten Geschmacksache.
Code-Snippet (Mini-Plugin)
Sofern du überzeugt bist, zu dürfen und zu sollen, kannst du einzelne – wohlgemerkt: einzelne, nicht zu viele! – Textstellen über das folgende Mini-Plugin anpassen.
„Mini-“Plugin?
Ein Mini-Plugin braucht in der Regel nur eine einzige Datei, erfüllt einen einzigen Zweck und stellt keine eigene Seite mit Einstellungen ins Backend. Die Konfiguration erfolgt direkt im Plugin-Code.
Warum nicht zu viele? Die Funktion des Plugins filtert alle Texte des gegebenen Plugins bzw. seiner Textdomain. Das könnte bei einem umfangreichen Plugin und vielen zu filternden Strings leicht in die Performance gehen und deine Site langsamer machen.
Das Mini-Plugin kannst du für deine Zwecke im Code bearbeiten. Setze einfach den Original-String, den du ändern möchtest, anstelle von „Wordpress“ in Zeile 34 ein, und deinen Ersatz-String dahinter anstelle von „WordPress“; weitere String-Paare nach dem gleichen Schema, mit Komma getrennt: array( 'Orange' => 'Apfelsine', 'Möhre' => 'Karotte' )
usw.
Zuletzt – und nachdem du den Code natürlich vorab in deiner Testumgebung ausprobiert hast – lädst du das Mini-Plugin in deinen Plugin-Ordner und aktivierst es über über die Plugin-Seite im Backend; oder du lädst es gleich in den Ordner mu-plugins, wenn es ohne Aktivierung einfach immer laufen soll.
Auch für Themes?
Theoretisch ist die Methode auch für den Einsatz mit einem Theme denkbar. Allerdings gibt es für Themes die wunderbare Möglichkeit, eigene Anpassungen, auch textlicher Art, über ein Child-Theme update-sicher einzupflegen. Daher dürfte sich das Mini-Plugin für Themes in der Praxis selten lohnen.
Viel Spaß!
Wobei man nicht verschweigen sollte, dass der Filter
gettext
recht oft gefeuert wird und man nicht willkürlich damit arbeiten soll, sondern überlegt, da ansonsten das Thema Performance eine erhöhte Priorität gegenüber dem Text bekommt.Danke für die Ergänzung, Frank! Das Performance-Thema hatte ich erwähnt, allerdings weniger präzise ausgeführt.
Genau der Einwand ist mir auch gerade in den Sinn gekommen. Nicht nur, dass es aus dem von Frank erwähnten Grund nicht ratsam ist, den
gettext
Filter überhaupt zu verwenden (wurde sogar in einer Session beim WCEU erwähnt), wenn man es denn doch tut, dann sollte Funktion so einfach wie möglich implementiert sein. In deiner Funktion werden hingegen einige Bedingungen geprüft und mehrere Unterfunktionen aufgerufen. Außerdem wird das Array mit den überschriebenen Strings jedes Mal neu in der Funktion definiert.Leider ist mein Plugin, dass das Überschreiben von Übersetzungen besser löst, noch nicht so weit, wie ich es mir wünsche (funktioniert noch nicht für verschiedene Überschreibungen pro Multisite Blog). Ich löse das eben nicht mit dem Filter, sondern über eigene PO-Dateien.
Funktioniert das auch als Toolbox-Modul?
Ab Zeile 14 müsste es, probier’s aus! 😉