PHP — Логика для тега link rel=alternate

Как при помощи PHP добавить теги с ссылками для подобных страниц но на другом языке? Очень просто, давайте разбираться

Link rel alternate как добавить в head правильную ссылку

Рассмотрим на примере сайта, у которого есть 2 языка — русский и украинский. Для начала добавим теги в head:

<link rel="alternate" href="<? =$curLink_1 ?>" hreflang="ru">
<link rel="alternate" href="<? =$curLink_2 ?>" hreflang="uk">

Перед этим подключим наш файл с логикой:
<?include(‘inc/url.php’)?>

содержимое файла:

// LIST
$arAlternate = array(
'/projects/dveri/' => '/ua/projects/dvery/',
'/projects/okna/' => '/ua/projects/vikna/',
);

// LOGIC
$curLink_1 = 'https://site.ru'.str_replace('/ua/', '/', $_SERVER['REQUEST_URI']);
$curLink_2 = 'https://site.ru/ua'.str_replace('/ua/', '/', $_SERVER['REQUEST_URI']);

if (array_key_exists($_SERVER['REQUEST_URI'], $arAlternate)) {
$curLink_1 = 'https://site.ru'.str_replace('/ua/', '/', $_SERVER['REQUEST_URI']);
$curLink_2 = 'https://site.ru'.$arAlternate[$_SERVER['REQUEST_URI']];
} else {
$flipAr = array_flip($arAlternate);
if (array_key_exists($_SERVER['REQUEST_URI'], $flipAr)) {
$curLink_1 = 'https://site.ru'.$flipAr[$_SERVER['REQUEST_URI']];
$curLink_2 = 'https://site.ru'.$_SERVER['REQUEST_URI'];
}
}
// END LOGIC

При помощи данного кода можно вывести не только страницы у которых добавляется только папка /ua/, но и составить список неочевидных соответствий, например:
‘/projects/dveri/’ => ‘/ua/projects/dvery/

Надеюсь у вас всё получилось 🙂

Если на вашем сайте необходимо выполнить подобную доработку, обращайтесь ко мне за помощью

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *