Ich versuche, mein site_url und eine Zeichenfolge zu verketten, aber es funktioniert nicht. Das mache ich:
$myurl = site_url();
var_dump($myurl);
$url = "https" . $myurl . "/inbox/?fepaction=viewmessage&fep_id=" . $inserted_message->ID;
var_dump($url); die;
Die Ausgabe sieht folgendermaßen aus:
string (31) "//zgp.mydomain.be" string (78) "https:/inbox /? fepaction = viewmessage & fep_id = 4813"
Wie Sie sehen, wird es nicht zusammengeführt. Wie kann das sein?
Ohne genau zu wissen, was Sie tun möchten, möchten Sie offenbar Abfragevariablen an die URL anhängen. WordPress verfügt über Methoden, um dies ohne manuelle Verkettung von Zeichenfolgen richtig zu handhaben.
Weitere Informationen finden Sie in der Dokumentation zu add_query_arg()
: https://developer.wordpress.org/reference/functions/add_query_arg/
Mit dieser Funktion können Sie die URL neu erstellen und Abfragevariablen an die URL-Abfrage anhängen. Es gibt zwei Möglichkeiten, diese Funktion zu verwenden. entweder ein einzelner Schlüssel und Wert oder ein assoziatives Array.
Verwenden eines einzelnen Schlüssels und Werts:
add_query_arg( 'key', 'value', 'http://example.com' );
Würde http://example.com/?key=value
erstellen
Verwenden eines assoziativen Arrays:
add_query_arg( array(
'key1' => 'value1',
'key2' => 'value2',
), 'http://example.com' );
Dies würde http://example.com/?key1=value1&key2=value2
erzeugen
Was Sie suchen, ist home_url()
.
Dadurch wird die Adresse der Site und nicht der Pfad zu Ihrer WP -Installation zurückgegeben.
Manchmal sind die einfachsten Lösungen die besten ...
Schauen Sie sich site_url
reference an.
Es werden zwei Parameter benötigt:
$ path (string) (optional) Pfad, der an die Site-URL angehängt wird. Standardeinstellung: Keine
$ scheme (string) (optional) Kontext für das Protokoll für die zurückgegebene URL. Durch das Festlegen von $ scheme wird der Standardkontext überschrieben. Zulässige Werte sind "http", "https", "login", "login_post", "admin" oder "relative". Voreinstellung: null
Wie Sie sehen, brauchen Sie nicht den ganzen Code ...
Sie können einfach verwenden:
$url = site_url('/inbox/?fepaction=viewmessage&fep_id=' . esc_url($inserted_message->ID), 'https');