$converted_url = apply_filters( 'wpml_permalink', string $permalink, string $language_code = null, bool $full_resolution = false );
- Тип
- filter
- Категория
- Получение локализованного контента
- Версия WPML
- 3.2.2
Описание
Фильтрует постоянную ссылку WordPress и преобразует её в постоянную ссылку для конкретного языка на основе формата URL языка, заданного в языковых настройках WPML.
Это означает, что когда для параметра «Формат URL языка» задано значение «Разные языки в каталогах», постоянная ссылка будет возвращена в виде http://domain.com/de. Когда выбрано значение «Свой домен для каждого языка», постоянная ссылка будет преобразована так, чтобы включать соответствующий домен, назначенный запрошенному языку.
Аргументы
- $permalink
- (строка) (Обязательно) Сгенерированный WordPress URL-адрес для фильтрации.
- $language_code
- (строка) (Необязательно) Язык, в который нужно преобразовать URL-адрес. Принимает двухбуквенный код. Если установлено значение
null, используется язык по умолчанию для корневой страницы или текущий язык во всех остальных случаях. По умолчанию:null - $full_resolution
- (логическое значение) (Необязательно) Включить полное преобразование жёстко закодированных URL-адресов.
Пример использования
Пример 1
Например, если выбран параметр «Разные языки в каталогах», мы можем использовать следующий код:
// will return http://domain.com/de/contact $wpml_permalink = apply_filters( 'wpml_permalink', 'http://domain.com/contact', 'de' );
Пример 2
У нас есть страница http://example.org/hello/ и её перевод http://example.org/fr/bonjour/. Допустим, мы вызываем фильтр во время отображения главной страницы http://example.org.
// displays http://example.org/fr/hello/ (wrong) echo apply_filters( 'wpml_permalink', 'http://example.org/hello/', 'fr' ); // displays http://example.org/fr/bonjour/ (correct) echo apply_filters( 'wpml_permalink', 'http://example.org/hello/', 'fr', true );
Важные замечания по второму примеру:
- Полное преобразование — это ресурсоёмкий процесс, поэтому WPML должен сохранять преобразованные URL-адреса в базе данных. Первый вызов wpml_permalink должен значительно увеличить количество запросов к базе данных и время загрузки. Но последующие вызовы не должны перегружать процесс.
- Данные, сохранённые в базе данных, частично очищаются при обновлении или удалении записей/терминов. И они полностью очищаются при переходе в Настройки -> Постоянные ссылки (это хороший вариант поиска и устранения неисправностей, если Вы столкнётесь с какими-либо проблемами).
- Если URL-адрес не удалось преобразовать, фильтр wpml_permalink вернёт исходный URL-адрес.
Связанные хуки
wpml_media_url, wpml_media_id, force_suppress_filters, wpml_get_translated_slug, wpml_home_url, wpml_translate_single_string, wpml_translate_string, wpml_elements_without_translations, wpml_unfiltered_admin_string, wpml_element_link
Все хуки категории «Получение локализованного контента» (12) →