web-dev-qa-db-fra.com

URL dynamique pour référencer la personnalisation PHP des dossiers

Développeur Wordpress débutant ici ... Je développe actuellement un site Wordpress pour un de mes appareils. Mon idée est de pouvoir me connecter à l'appareil qui fait office de serveur Web. Je devrais pouvoir accéder au site à partir du périphérique local hébergeant le site (Raspberry Pi à partir d’ici référencé comme serveur) ainsi que de n’importe quel ordinateur/périphérique connecté au même réseau que le serveur (téléphone portable/ordinateur portable, etc.). ici référencé en tant que client).

Se connecter directement sur le serveur au site fonctionne correctement en se connectant avechttp: // localhost/mysite. Tous les liens et actions fonctionnent comme prévu.

La connexion au site à partir d'un client fonctionne partiellement. Je peux me connecter et parcourir les liens wordpress comme les pages, etc., mais le processus ci-dessous ne fonctionne pas:

Le processus

Mon plugin crée des shortcodes que je peux ajouter à n'importe quelle page. toutes les fonctions des shortcodes appellent essentiellement un fichier php avec le code suivant:

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

puis crée un formulaire html sur la page en utilisant les valeurs qu'il a obtenues à partir de la requête ci-dessus. Le formulaire contient un bouton d'envoi. Lorsque l'utilisateur clique dessus, le formulaire l'envoie comme valeur:

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

Le fichier mypostphp prend ensuite les valeurs de formulaire qui lui sont envoyées, l'écrit dans une base de données et revient à la page d'origine en ajoutant un paramètre d'URL "? Success = true". Ceci est fait en utilisant le code suivant dans le fichier mypostphpfile.php à la fin, une fois toutes les données écrites:

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

Je sais exactement quel est le problème. Le problème est l’hôte local de mon URL sur lequel j’ai pour ainsi dire "codé en dur" et que je publie/renvoie à. Lors de l'exécution de la publication sur le serveur, il poste dans le fichier php localhost disponible sur localhost (dans le contexte du serveur). Lors de la publication à partir d'un client, la publication ne fonctionne pas car elle est publiée dans un fichier php localhost que le navigateur client recherche sur l'ordinateur client et non sur le serveur.

Cela semble être un problème d'URL. Les fichiers .htaccess, etc., ne sont pas très familiers et je ne sais même pas si ce sera la solution à mon problème. Je dois pouvoir poster dans le fichier php où son URL est relative au serveur, quel que soit le périphérique sur lequel je navigue sur le site. Je suis très nouveau dans le développement Wordpress et les recherches sur Internet ne mènent à rien, ce qui a du sens, car je ne sais même pas comment décrire le problème dans une barre de recherche Google (comme vous pouvez le voir dans la description de la question :). J'aimerais éviter de coder en dur les adresses IP, car celles-ci peuvent changer, tout comme les noms d'hôte, car j'ai lu que ces adresses ne fonctionnaient pas toujours (du moins sur un Raspberry Pi).

En bref, y a-t-il moyen de choisir l’URL en cours d’exécution pour permettre à tous les clients de terminer le processus. L'URL des fichiers php doit être relative au serveur.

Toute aide à ce sujet ou me diriger dans la bonne direction sera très appréciée.

4
Joachim Prinsloo

Je ne suis pas sûr de comprendre la question, mais si vous essayez simplement d’obtenir l’URL du site, vous pouvez utiliser la fonction get_site_url() WP. Alors, comme ça:

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

Et vous pouvez modifier les paramètres de get_site_url() pour spécifier le chemin et afficher "https" ou "http".

Mais si vous avez juste besoin de l'URL du site actuel, utilisez get_site_url();

3
Coltvant