WPML
apply_filters( 'wpml_language_codes_map', array $map )
Tipo
filter
Versão do WPML
5.0.0

Descrição

Filtra o mapa de códigos de idioma para os códigos que o WPML usa nos URLs.

Um idioma tem dois códigos no WPML 5.0. language_code é o código armazenado, e ele nunca muda. O código do URL é o segmento que um visitante vê, por exemplo, /de-de/. Os dois diferem quando o WPML qualifica o código do URL, o que acontece quando você adiciona dois países de um idioma na mesma etapa, e quando o proprietário do site edita o código do URL.

Este filtro é o mapa que o próprio conversor de URLs lê, portanto, ele nunca pode divergir dos links que o WPML cria. Use-o para descobrir o endereço de um idioma. Para ler todos os dados dos idiomas ativos, incluindo a bandeira e o URL completo, use wpml_active_languages.

Você cria o mapa e o WPML o reescreve. O WPML substitui o valor de cada chave que ele conhece pelo código do URL desse idioma, e deixa todas as outras chaves como você as passou. O WPML nunca adiciona um idioma, portanto, um array vazio retorna vazio. Crie o mapa primeiro, como WPML code => WPML code, e depois aplique o filtro. O WPML faz o mesmo em seu próprio código.

Argumentos

Parâmetros
  • $map(array) Um mapa de WPML code => code que você mesmo cria. O WPML substitui o valor de cada chave que ele conhece pelo código de URL desse idioma. Uma chave que o WPML não conhece mantém o valor que você passou.
Retorna
(array) O mesmo mapa, com o código de URL de cada idioma que o WPML conhece. O WPML não adiciona chaves, portanto, passe todos os idiomas que você deseja ler.

Exemplo de uso

Leia o mapa para saber qual segmento de URL um idioma usa. O exemplo escreve uma linha por idioma. Ele lê a lista de idiomas com wpml_active_languages, portanto, é executado após a ação wp, como esse filtro.

Exemplo
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 />';
    }
}

Para alterar o código de URL de um idioma, edite-o em WPML » Configurações » Idiomas. Não use este filtro para mover um idioma para outro endereço: o WPML lê o mapa quando analisa um URL recebido e quando constrói um link, de modo que um valor que não pertence a nenhum idioma produz endereços que o WPML não consegue resolver.

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

Todos os 30 hooks de Informações de idioma de todo o site