Skip navigation
Обновлено
7 июня, 2024

Многие темы WordPress содержат жестко закодированные ссылки. Например, ссылки в нижнем колонтитуле, указывающие на страницы поддержки и контактов, могут выглядеть следующим образом:

<a href="/support/">Support</a> | <a href="/contact-us/">Contact us</a>

Если сайт работает в многоязыковом режиме, эти ссылки должны адаптироваться к языку отображения. И текст ссылки (то, что видит посетитель), и URL (то, куда ведет ссылка) должны меняться при переключении языков.

Функция WPML icl_link_to_element() будет создавать локализованные ссылки на страницы и должна использоваться именно для этой цели.

Примечание: Для версий WPML >=3.2 используйте крючок фильтра wpml_element_link. Функцию, показанную ниже, все еще можно использовать, но она была устаревшей и будет полностью удалена в 3.3.

Описание функций

icl_link_to_element(ID, type, text, arguments, anchor);

Аргумент Описание Обязательно / по желанию
ID Идентификатор записи, страницы, тега или категории, на которую нужно сделать ссылку. Требуется
тип Тип страницы, на которую нужно сделать ссылку. Это может быть «запись», «страница», «тег» или «категория». Необязательно, по умолчанию это ‘Запись’.
текст Текст ссылки. Если не указано, будет выдано название элемента на текущем языке. Необязательно, по умолчанию это имя элемента. Чтобы оставить значение по умолчанию, введите false.
аргументы Необязательные аргументы для ссылки. При использовании это должен быть массив PHP. Необязательно, по умолчанию — нет аргументов
якорь Необязательный якорь для ссылки. Необязательно, по умолчанию — нет якоря

Пример использования

Пример Назначение Созданный HTML
<?php icl_link_to_element(10); ?> Ссылка на страницу 10 (страница поддержки) <a href=»/support/»>Поддержка</a>
<php icl_link_to_element(10,’Запись’,__(‘Получить помощь’)); ?> Ссылка на страницу поддержки с альтернативным текстом ссылки <a href=»/support/»>Получить помощь</a>
<?php icl_link_to_element(10,’post’,false, array(‘category’=>’products’,’priority’=>’high’); ?> Ссылка на страницу поддержки и добавьте два аргумента <a href=»/support/?category=products&priority=high»>Поддержка</a>
<php icl_link_to_element(10,’Запись’,false,’приоритет’=>’высокий’,’faq’); ?>
<?php icl_link_to_element(3,’tag’); ?> Ссылка на тег с ID 3 (наш тег ‘News’) <a href=»/tag/news/»>Новости</a>

Как это работает

Вы можете указать ID страницы / записи / тега / категории на любом языке. WPML проверит, существует ли перевод для текущего языка. Если да, то будет создана ссылка на него. Если перевода не существует, будет дана ссылка на страницу на языке оригинала.

Если Вы указываете текст ссылки вручную, не лишним будет обернуть его в вызов gettext __(), чтобы текст отображался на правильном языке. Если Вы не укажете текст ссылки (как в первом примере), WPML выдаст название этой страницы.