WordPress: Aktuelle URL ausgeben

Erst kürzlich musste ich für ein Formular die aktuelle URL ausgeben. Normalerweise nutze ich dafür die PHP-Konstanten und doch hat WordPress auch etwas, was man anstelle der Konstanten verwenden kann.

PHP-Konstanten

Der alte und eigentliche sichere Weg ist die Verwendung der PHP-Konstanten um die aktuelle URL auszugeben. Ein Beispiel hierfür, könnte so aussehen:

$url = 'http://';

if ( isset( $_SERVER['HTTPS'] ) && 'on' === $_SERVER['HTTPS'] ) {
	$url = 'https://';
}   

$url .= $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];Code-Sprache: PHP (php)

WordPress

In WordPress sieht das Ganze etwas anders aus. Um allerdings die Query-Parameter weiterzugeben, verwenden wir eine PHP-Lösung. Hier die WordPress-Variante:

global $wp;

$url = home_url( add_query_arg( [], $wp->request ) );

if ( isset( $_GET ) ) {
	$params = filter_input_array( INPUT_GET, FILTER_SANITIZE_STRING );
	$url    = home_url( add_query_arg( $params, $wp->request ) );
}Code-Sprache: PHP (php)

Die Frage ist jetzt: Was ist denn besser?

WordPress, würde ich sagen. Das liegt vor allem darum, dass WordPress für uns überprüft, ob die verwendeten Parameter sicher sind. Außerdem müssen wir nicht selbst überprüfen, ob https verwendet oder nicht verwendet wird.

Generell sollte man in WordPress immer auf Bordmittel zurückgreifen, auch weil sich dort mehr Personen über die Funktionen Gedanken gemacht haben, als man es selbst machen könnte.

Denk daran, dass die WordPress-Variante auch nur innerhalb von WordPress funktioniert. Die PHP-Variante funktioniert so ziemlich überall.