Ist es in Ordnung, eine Funktion zum Ausgeben des Textdomänennamens in einem WordPress-Theme zu verwenden?

7

Ich arbeite an einem Thema und möchte es für die Übersetzung zur Verfügung stellen. Ich habe keine Textdomäne in übersetzten Text aufgenommen, da ich noch nicht weiß, wie die Textdomäne aussehen wird. Ich dachte mir, bis ich einen Namen für mein Thema finden kann, sollte ich einfach eine Funktion verwenden, um meinen Textdomänennamen auszugeben, anstatt ihn hart auf übersetzten Text zu codieren.

BEISPIEL:

Dies ist die traditionelle Methode zum Hinzufügen einer Textdomäne:

echo _e('Hello', 'my-theme-name');

Mein Ansatz ist wie folgt:

function text_domain() {
   define('TEXT_DOMAIN', 'my-theme-name', true );
   echo TEXT_DOMAIN;
}

und wie folgt verwenden:

 echo _e('Hello', text_domian());

... und wenn ich einen Namen für mein Thema finde, kann ich ihn einfach an einer Stelle aktualisieren, anstatt ein paar Mal in jeder Datei.

DIE FRAGE IST: Ist dies eine gute Möglichkeit und werde ich Probleme haben, mein Thema vom WordPress-Themenüberprüfungsteam zu genehmigen?

Fabian Amran
quelle

Antworten:

14

Nein, das ist nicht in Ordnung. NEIN NEIN NEIN. Hier ist mein Lieblingszitat von Otto :

Innerhalb aller Übersetzungsfunktionen sind aus irgendeinem Grund niemals PHP-Variablen in den Zeichenfolgen zulässig.

Otto erklärt dies ausführlicher, aber die einfache Art zu sagen ist, dass Übersetzungsaufrufe analysiert und nicht ausgeführt werden . Daher wird Ihre Variable (geschweige denn Ihre Funktion) möglicherweise nicht ausgewertet und die Textdomäne wird unterbrochen.

wpse241589Sie sollten also vorübergehend einen eindeutigen Namen wie für Ihre Textdomäne verwenden und eine Suche durchführen und ersetzen, sobald Sie einen besseren Namen haben.

cjbj
quelle
3
Der Artikel, auf den Sie verwiesen haben, hat meine Frage beantwortet. Ich schätze es sehr, dass Sie sich die Zeit genommen haben, diese Frage zu beantworten.
Fabian Amran
Ich spreche von meiner eigenen, umstrittenen Version der Textdomäne: wordpress.stackexchange.com/questions/227148/…
cjbj
Sehr lehrreiche Antwort und Link
Adelval