it-swarm.com.de

Dynamische URL zum Verweisen auf Benutzerdefiniert PHP Dateien

Anfänger Wordpress-Entwickler hier ... Ich entwickle gerade eine Wordpress-Site für ein Gerät von mir. Meine Idee ist, in der Lage zu sein, sich mit dem Gerät zu verbinden, das als Webserver fungiert. Ich sollte in der Lage sein, auf die Site von dem lokalen Gerät aus zuzugreifen, auf dem die Site gehostet wird (Raspberry Pi wird von hier aus als Server bezeichnet), sowie von jedem Computer/Gerät, das mit demselben Netzwerk wie der Server verbunden ist (Mobiltelefon/Laptop usw. von Raspberry Pi) hier als Auftraggeber bezeichnet).

Das Herstellen einer Verbindung direkt auf dem Server mit der Site funktioniert einwandfrei mithttp: // localhost/mysite. Alle Links und Aktionen funktionieren wie erwartet.

Das Herstellen einer Verbindung mit der Site von einem Client aus funktioniert teilweise. Ich kann WordPress-Links wie Seiten usw. verbinden und durchsuchen, aber der folgende Vorgang funktioniert nicht:

Der Prozess

Mein Plugin erstellt Shortcodes, die ich jeder Seite hinzufügen kann. Alle Funktionen der Shortcodes rufen grundsätzlich eine PHP-Datei mit folgendem Code auf:

http://localhost/mysite/wp-content/plugins/my-plugin/api/mydatasourcephpfile.php

und erstellt dann ein HTML-Formular auf der Seite unter Verwendung der Werte, die es von der obigen Anforderung erhalten hat. Das Formular enthält eine Senden-Schaltfläche. Wenn Sie darauf klicken, sendet das Formular Werte an:

http://localhost/mysite/wp-content/plugins/my-plugin/api/mypostphpfile.php

Die mypostphpfile übernimmt dann die dort angegebenen Formularwerte, schreibt sie in eine Datenbank und kehrt zur ursprünglichen Seite zurück, wobei ein URL-Parameter von "? Success = true" hinzugefügt wird. Dies geschieht mit dem folgenden Code in der Datei mypostphpfile.php direkt am Ende, nachdem alle Daten geschrieben wurden:

$success="true";
header('Location: http://localhost/mysite/myoriginalformpage/?success=', $success);

Ich weiß genau, wo das Problem liegt. Das Problem ist der Localhost in meinen URLs, zu dem ich sozusagen "hardcoded" poste/zurückkehre. Bei der Ausführung des Beitrags auf dem Server und es Beiträge zu der localhost-PHP-Datei, die auf dem localhost verfügbar ist (im Kontext des Servers). Beim Posten von einem Client aus funktioniert das Posten nicht, da es in eine localhost-PHP-Datei gepostet wird, nach der der Client-Browser auf dem Client-Computer und nicht auf dem Server sucht.

Es scheint ein URL-Problem zu sein. Ich bin nicht sehr vertraut mit .htaccess-Dateien usw. und ich weiß nicht einmal, ob es die Lösung für mein Problem sein wird. Ich muss in der Lage sein, in die PHP-Datei zu schreiben, in der die URL relativ zum Server ist, unabhängig davon, von welchem ​​Gerät ich auf der Website surfe. Ich bin sehr neu in der Entwicklung von Wordpress und die Suche im Internet führt zu wenig Sinnvollem, da ich nicht einmal weiß, wie ich das Problem in einer Google-Suchleiste beschreiben soll (wie Sie in der Beschreibung der Frage sehen können :). Ich möchte verhindern, dass IP-Adressen hart codiert werden, da sich diese ändern können, und Hostnamen, wie ich gelesen habe, funktionieren nicht immer (zumindest auf einem Raspberry Pi).

Zusammenfassend kann ich also feststellen, von welcher URL WordPress ausgeführt wird, damit alle Clients den Vorgang abschließen können. Die URL zu den PHP-Dateien sollte relativ zum Server sein.

Jede Hilfe in dieser Angelegenheit oder jeder Hinweis in die richtige Richtung wird sehr geschätzt.

4

Ich bin nicht sicher, dass ich die Frage verstehe, aber wenn Sie nur versuchen, die Site-URL abzurufen, können Sie die Funktion get_site_url() WP verwenden. Also so:

$siteURL = get_site_url();
header("=Location: $siteURL" . "/myoriginalformpage/?success=", $success);

Sie können die Parameter von get_site_url() ändern, um den Pfad anzugeben und "https" oder "http" anzuzeigen.

Wenn Sie jedoch nur die URL der aktuellen Site benötigen, verwenden Sie get_site_url();

3
Coltvant