web-dev-qa-db-fra.com

URL du site relative ou dynamique possible?

J'ai une installation wordpress de Xampp locale que j'utilise comme une sorte d'intranet avec certaines personnes avec lesquelles je travaille. Je leur demande de pouvoir y accéder sur notre routeur LAN. J'ai constaté que je devais changer l'URL du site et les liens entre http: // localhost: 8080 et mon adresse IP http: //192.168. x.xx: 8080 pour les images et les CSS à afficher.

Cependant, j’ai constaté que lorsque nous sommes connectés à un autre routeur ou à mon routeur de voyage, cette adresse IP change et le rend évidemment inopérant sur le réseau local. Je ne veux pas vraiment chercher/remplacer et changer le nom du site chaque fois qu'un nouvel ordinateur et/ou serveur héberge le site local.

Question: Je suis donc vraiment intéressé de voir s’il existe un moyen de rendre l’URL du site/de la maison dynamique en fonction de l’adresse IP ou du nom d’ordinateur actuel de l’ordinateur hôte. Ou si je cherche le mauvais type de solution.

J'ai longuement cherché une solution à ce problème, mais je pense que mon problème est que je ne suis pas sûr des termes à rechercher - ou s'il existe une meilleure solution. J'espère que quelqu'un d'intelligent pourrait me diriger dans la bonne direction.

- Sur la base de mes recherches sur Internet, j'ai essayé plusieurs plugins - URL relatives et "URL relatives racines" dans l'espoir que cela corrige, mais cela n'a pas changé. -J'ai également défini une adresse IP statique dans mon routeur de voyage. Cependant, le problème persiste car il me faudrait changer l'adresse IP sur le site si l'ordinateur change. -J'ai aussi essayé ceci dans mon wp-config:

<?php
define('WP_HOME', 'http://' . $_SERVER['HTTP_Host']);
//add the next line if you have a subdirectory install
define('WP_SITEURL', WP_HOME . '/wordpress');
4
Taberkinslaw

Si quelqu'un se trouve dans une situation similaire à la mienne, j'ai trouvé une solution en ajoutant:

/* That's all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/* THIS IS CUSTOM CODE CREATED AT ZEROFRACTAL TO MAKE SITE ACCESS DYNAMIC */
$currenthost = "http://".$_SERVER['HTTP_Host'];
$currentpath = preg_replace('@/+$@','',dirname($_SERVER['SCRIPT_NAME']));
$currentpath = preg_replace('/\/wp.+/','',$currentpath);
define('WP_HOME',$currenthost.$currentpath);
define('WP_SITEURL',$currenthost.$currentpath);
define('WP_CONTENT_URL', $currenthost.$currentpath.'/wp-content');
define('WP_PLUGIN_URL', $currenthost.$currentpath.'/wp-content/plugins');
define('DOMAIN_CURRENT_SITE', $currenthost.$currentpath );
@define('ADMIN_COOKIE_PATH', './');

Dans le fichier wp-config.php, j'ai trouvé cette solution sur le site: http://davidmregister.com/dynamic-wp-siteurl/

Merci tout le monde!

7
Taberkinslaw

D'habitude, j'évite tout simplement le problème à chaque fois que je crée un nouveau site wordpress:

define('WP_HOME', '/');
define('WP_SITEURL', '/');

wordpress utilisera des URL relatives à la racine pour tout. Facilite beaucoup la migration des sites vers d'autres domaines. Bien sûr, si vous accédez à votre site en utilisant un dossier (par exemple, " http: // <domaine>/blog "), vous pouvez les modifier en:

define('WP_HOME', '/blog/');
define('WP_SITEURL', '/blog/');

Pour les sites existants, assurez-vous que la base de données et les fichiers de thème/plug-in sont exempts d'URL absolues générées par wordpress à l'aide des anciennes valeurs WP_HOME et WP_SITEURL.

EDIT: juste pour clarifier, vous ajoutez ces définitions à votre wp-config.php.

6
Jaded