- Status
- Resolvido
- Resolvido em
- 4.0.0
Visão geral do problema
Antes da 4.0.0, o WPML tentava fazer com que a barra final correspondesse à URL de entrada durante a conversão. Infelizmente, essa lógica não é adequada para todos os casos.
A partir da 4.0.0, a URL convertida corresponderá ao comportamento padrão do WordPress, que é o seguinte:
- Quando não há caminho nem query, o WPML tentará corresponder à URL de entrada (por exemplo, http://wpml.com => http://wpml.fr, ou http://wpml.com/ => http://wpml.fr/). No entanto, o WordPress geralmente exibe a URL da página inicial sem nenhuma barra final.
- Quando não há caminho, mas há uma query, sempre teremos uma barra final (por exemplo, http://wpml.com?foo=bar => http://wpml.fr/?foo=bar).
- Quando temos um caminho (não um arquivo), a barra final depende do formato do link permanente.
- Quando temos um caminho apontando para um arquivo, nenhuma barra final deve ser adicionada (independentemente do formato do link permanente). Exemplo: http://wpml.com/wp-content/uploads/hello.csv.
Solução alternativa
Esta mudança pode ter alguns efeitos colaterais inesperados em temas ou plugins de terceiros.
Recomendamos fortemente evitar a concatenação de strings para construir URLs e usar funções como:
- add_query_arg para construir a consulta da URL.
- http_build_url se esta função estiver disponível no servidor (no entanto, o WPML fornece um polyfill).
- trailingslashit, untrailingslashit para adicionar ou remover as barras finais.
Por exemplo, o seguinte código:
$url = get_home_url() . '/' . $path;
Deve ser substituído por:
$url = trailingslashit( get_home_url() ) . $path;