Я использую сайт localhost в качестве основы для создания других сайтов. Я использую php для генерации внутренних ссылок, находя текущий домен и отображая его с помощью шорткода. Я намерен загрузить свой сайт на действующий хост, и поэтому домен изменится, и мои внутренние ссылки не будут нарушены.
//add shortcode that displays current site name
function GR_site_name(){
$currentDomain = $_SERVER['HTTP_HOST'];
return $currentDomain.'/wordpress';
}
add_shortcode('GR_site_name', 'GR_site_name');
?>
Я проверил это, добавив код на живые сайты, и он отлично работает.
Я прочитал пост на Насколько безопасен $ _SERVER ["HTTP_HOST"]? однако он описывает его как «вообще небезопасный» из-за сценария, который он запускает.
Является ли $ _SERVER [‘SERVER_NAME’] более безопасным, чем $ _SERVER [‘HTTP_HOST’]? Или оба считаются плохой практикой?
Создайте файл конфигурации с помощью define (‘host’, ‘https://example.com‘) и используйте хост там, где вы хотите, и когда вы загружаете скрипт на сервер, просто измените URL в файле конфигурации, и все готово
Используйте комбинацию стандарта WP_HOME
& WP_SITEURL
константы, наряду с site_url()
функция.
Я бы рекомендовал использовать одну локальную копию wp-config.php
и другой для живого сайта, а затем добавьте к ним следующее:
define('WP_SITEURL', 'http://www.example.com/wordpress'); // Or 'http://localhost/wordpress' for the local copy
define('WP_HOME', 'http://www.example.com');
Таким образом, вам не нужна пользовательская функция или шорткод — вы можете просто вызвать site_url()
везде, где вам нужно, чтобы получить URL вашего сайта WP.
В качестве альтернативы, если вам нужно сохранить переменную URL сайта и принять все, что на нее указывает:
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/wordpress');
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/wordpress');
Если вам нужно сохранить шорткод для использования в контексте поста, вы можете изменить его на:
function GR_site_name(){
return site_url();
}
Обратите внимание, что настройка WP_HOME
а также WP_SITEURL
переопределить любой параметр базы данных для URL сайта, и если вы посещаете Settings->General
странице, вы увидите, что эти два поля выделены серым цветом.