WordPress — Использование PHP для генерации внутренних ссылок

Я использую сайт 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’]? Или оба считаются плохой практикой?

0

Решение

Создайте файл конфигурации с помощью define (‘host’, ‘https://example.com‘) и используйте хост там, где вы хотите, и когда вы загружаете скрипт на сервер, просто измените URL в файле конфигурации, и все готово

0

Другие решения

Используйте комбинацию стандарта 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 странице, вы увидите, что эти два поля выделены серым цветом.

0

По вопросам рекламы [email protected]