apply_filters( 'wpml_language_codes_map', array $map )
- Тип
- filter
- Категория
- Информация о языках для всего сайта
- Версия WPML
- 5.0.0
Описание
Фильтрует карту кодов языков, заменяя их на коды, которые WPML использует в URL.
В WPML 5.0 у языка есть два кода. language_code — это сохраненный код, и он никогда не меняется. URL-код — это сегмент, который видит посетитель, например, /de-de/. Эти два кода различаются, когда WPML уточняет URL-код; это происходит, когда Вы добавляете две страны одного языка за один шаг, а также когда владелец сайта изменяет URL-код.
Этот фильтр представляет собой карту, которую считывает сам конвертер URL, поэтому она никогда не расходится со ссылками, которые создает WPML. Используйте его, чтобы узнать адрес языка. Чтобы получить все данные активных языков, включая флаг и полный URL, используйте wpml_active_languages.
Вы создаете карту, а WPML переписывает ее. WPML заменяет значение каждого известного ему ключа на URL-код соответствующего языка и оставляет все остальные ключи в том виде, в котором Вы их передали. WPML никогда не добавляет язык, поэтому пустой массив возвращается пустым. Сначала создайте карту в виде WPML code => WPML code, а затем примените фильтр. WPML делает то же самое в своем коде.
Аргументы
- Параметры
-
- $map(массив) Карта
WPML code => code, которую Вы создаете самостоятельно. WPML заменяет значение каждого известного ему ключа на код URL соответствующего языка. Ключ, неизвестный WPML, сохраняет переданное Вами значение.
- $map(массив) Карта
- Возвращает
- (массив) Ту же карту с кодом URL каждого языка, известного WPML. WPML не добавляет ключи, поэтому передайте каждый язык, который Вы хотите считать.
Пример использования
Считайте карту, чтобы узнать, какой сегмент URL использует язык. В примере выводится по одной строке для каждого языка. Он считывает список языков с помощью wpml_active_languages, поэтому выполняется после действия wp, как и тот фильтр.
Пример
function my_language_url_codes() {
$codes = apply_filters( 'wpml_active_languages', null );
if ( empty( $codes ) ) {
return;
}
$identity = array_combine( array_keys( $codes ), array_keys( $codes ) );
$map = apply_filters( 'wpml_language_codes_map', $identity );
foreach ( $map as $language_code => $url_code ) {
echo esc_html( $language_code . ' is served at /' . $url_code . '/' ) . '<br />';
}
}
Чтобы изменить код URL языка, отредактируйте его в WPML » Настройки » Языки. Не используйте этот фильтр для переноса языка на другой адрес: WPML считывает карту при разборе входящего URL и при создании ссылки, поэтому значение, не принадлежащее ни одному языку, создает адреса, которые WPML не может распознать.
Связанные хуки
wpml_decode_custom_field, wpml_footer_language_selector, wpml_add_language_form_field, wpml_ls_exclude_in_menu, wpml_is_rtl, wpml_alternate_hreflang, wpml_head_langs, wpml_must_translate_canonical_url, wpml_browser_redirect_language_params, wpml_active_languages
Все хуки из категории «Информация о языках для всего сайта» (30)