WPML
$converted_url = apply_filters( 'wpml_permalink', string $permalink, string $language_code = null, bool $full_resolution = false );
Tipo
filter
Versão do WPML
3.2.2

Descrição

Filtra um link permanente do WordPress e o converte em um link permanente específico do idioma com base no formato de URL do idioma definido nas configurações de idioma do WPML.

Isso significa que, quando “Formato de URL do idioma” estiver definido como “Idiomas diferentes em diretórios”, o link permanente será retornado no formato http://domain.com/de. Quando “Um domínio diferente por idioma” for selecionado, o link permanente será convertido para incluir o domínio correto atribuído ao idioma solicitado.

Argumentos

$permalink
(string) (Obrigatório) A URL gerada pelo WordPress a ser filtrada.
$language_code
(string) (Opcional) O idioma para o qual a URL será convertida. Aceita um código de 2 letras. Quando definido como null, ele reverte para o idioma padrão da página raiz, ou para o idioma atual em todos os outros casos. O padrão é null
$full_resolution
(boolean) (Opcional) Ativa a conversão completa de URLs hard-coded.

Exemplo de uso

Exemplo 1

Por exemplo, se tivermos a opção “Idiomas diferentes em diretórios” selecionada, podemos usar o seguinte código:

// will return http://domain.com/de/contact
$wpml_permalink = apply_filters( 'wpml_permalink', 'http://domain.com/contact', 'de' );	

Exemplo 2

Temos uma página http://example.org/hello/ e sua tradução http://example.org/fr/bonjour/. Digamos que estamos chamando o filtro enquanto exibimos a página inicial 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 ); 

Notas importantes sobre o segundo exemplo:

  • A resolução completa é um processo pesado, então o WPML precisa persistir as URLs resolvidas no banco de dados. A primeira chamada para wpml_permalink deve aumentar significativamente as consultas ao banco de dados e o tempo de carregamento. Mas as chamadas subsequentes não devem sobrecarregar o processo.
  • A persistência no banco de dados é parcialmente limpa quando posts/termos são atualizados ou excluídos. E é totalmente limpa ao visitar Configurações -> Links permanentes (esta é uma boa opção de solução de problemas caso você encontre algum problema).
  • Caso a URL não possa ser resolvida, o filtro wpml_permalink retornará a URL original.

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

Todos os 12 hooks de Recuperar conteúdo localizado →