Возможно ли использовать относительный или динамический URL сайта?
У меня есть локальная установка WordPress на Xampp, которую я использую как своего рода интранет для коллег. Мне нужно, чтобы они могли получить к ней доступ через наш локальный роутер — я обнаружил, что мне нужно изменить URL сайта и ссылки с http://localhost:8080 на мой IP http://192.168.x.xx:8080, чтобы изображения и CSS отображались.
Однако я столкнулся с проблемой: при подключении к другому роутеру или моему портативному роутеру IP-адрес меняется, и сайт перестает работать в локальной сети. Мне не хочется каждый раз вручную менять адрес сайта при смене компьютера или сервера.
Вопрос: Мне очень интересно, есть ли способ сделать URL сайта динамическим, чтобы он автоматически подстраивался под текущий IP или имя компьютера. Или, возможно, я ищу не то решение.
Я уже много искал в интернете, но, кажется, проблема в том, что я не знаю, какие именно термины использовать для поиска — или существует лучшее решение. Надеюсь, кто-то подскажет правильный путь.
- На основе поиска я попробовал несколько плагинов, например "Relative URLs" и "Root relative URLS", но они не помогли. - Я также настроил статический IP-адрес на портативном роутере, но проблема остается, так как при смене компьютера нужно менять IP в настройках сайта. - Я также пробовал добавить это в wp-config:
<?php
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
// добавляем следующую строку, если WordPress установлен в подкаталоге
define('WP_SITEURL', WP_HOME . '/wordpress');
Обычно я просто избегаю этой проблемы каждый раз, когда создаю новый сайт на WordPress:
define('WP_HOME', '/');
define('WP_SITEURL', '/');
Это заставит WordPress использовать относительные URL-адреса от корня для всего. Делает миграцию сайта на другие домены гораздо проще. Конечно, если вы обращаетесь к своему сайту через папку (например, "http://<домен>/blog"), вы можете изменить их на:
define('WP_HOME', '/blog/');
define('WP_SITEURL', '/blog/');
Для существующих сайтов убедитесь, что база данных и любые файлы тем/плагинов не содержат абсолютных URL-адресов, сгенерированных WordPress с использованием старых значений WP_HOME и WP_SITEURL.
РЕДАКТИРОВАНО: для ясности, вы добавляете эти определения в ваш wp-config.php.

Если у кого-то похожая ситуация, я нашел решение, добавив:
/* На этом всё, прекращаем редактирование! Приятного ведения блога. */
/** Абсолютный путь к директории WordPress. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/* ЭТО ПОЛЬЗОВАТЕЛЬСКИЙ КОД, СОЗДАННЫЙ В ZEROFRACTAL ДЛЯ ДИНАМИЧЕСКОГО ДОСТУПА К САЙТУ */
$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', './');
В файл wp-config.php Я нашел это решение на сайте: http://davidmregister.com/dynamic-wp-siteurl/
Спасибо всем!
