Werteübergabe PHP zu JavaScript mit WordPress

Die Übergabe von Werten an JavaScript aus PHP heraus in WordPress stellt einige Entwickler immer wieder vor die Frage - Wie geht das? Es werden zum Teil aufwendige Lösungen implementiert und ein kleines Beispiel soll zeigen, wie es geht und wie WordPress dies unterstützt.

Beim Erstellen von Plugins und Theme-Funktion hat sich das Schreiben für das Nutzen der Mehrsprachigkeit etabliert. Für uns als deutsche Entwickler nicht mehr wegzudenken, gibt es trotzdem diverse Fallstricke und bei der Nutzung von JavaScript in Erweiterungen, ist man am überlegen, wie man die Mehrsprachigkeit umsetzt oder auch Optionswerte übergibt. WordPress stellt dazu Möglichkeiten bereit und es ist an der Zeit diese wieder bekannter zu machen, da die Frage immer wieder auftaucht und die Entwickler nach den Möglichkeiten suchen. Das folgende kleine Beispiel soll die Umsetzung verdeutlichen und die einfache Übergabe von Strings demonstriert dies. Ob nun Strings für die Mehrsprachigkeit oder die Übergabe von Optionswerten, ist dabei relativ egal.

ersten Schritt wird eine Funktion mit einem Array erstellt, die die benötigten Inhalte enthält und mittels Variablen kann auf die jeweiligen Inhalte zugegriffen werden


function get_language_strings() {
    $strings = array(
        'example' => __( 'My Example String', TEXTDOMAIN_CONSTANT ),
        'foo'   => __( 'My foo string', TEXTDOMAIN_CONSTANT ),
        'bar'   => __( 'My bar', TEXTDOMAIN_CONSTANT )
    )

    return $strings;
}

Beim Aufruf der Erweiterung, Plugin oder im Theme, muss die Funktion geladen werden. Dafür stellt WordPress die Funktion wp_localize_script() bereit, die sich um alles kümmert:


wp_localize_script( 
                       'my_foo', 
                       'my_var_prefix',
                       $this->get_language_strings() // inside class
);

In den Scripten kann nun auf die Variablen zugegriffen werden:


alert( my_var_prefix.example );

Kein Einbinden der wp-load.php oder ähnliches, einfach auf die Inhalte zugreifen. Die Strings werden nun in allen Sprachen mit Hilfe der klassischen Methoden übersetzt und es gilt lediglich die entsprechenden Dateien anzulegen.

Kommentare sind geschlossen.