Criando estrutura permalink personalizada para idiomas

9

Eu escrevi um sistema multilíngüe simples, pelo qual clicar em um ícone de sinalizador define um cookie de um ano contendo um código de idioma de duas letras (por exemplo, nl, de, etc).

Eu me conecto à ação wp para ler o valor do cookie, depois uso os filtros the_title e the_content para mostrar o idioma correto (os diferentes idiomas são inseridos via metaboxes na tela de edição de página / postagem).

Isso tudo funciona muito bem, exceto que eu também gostaria de ter permalinks para cada versão de idioma em que o código do idioma de duas letras está entre o nome de domínio e a estrutura permalink usual. Estou usando a estrutura %postname% permalink, portanto, todos os itens a seguir seriam válidos:

http://example.com/nl/about-us
http://example.com/de
http://example.com/fr/2012/03
http://example.com/es/this-is-a-post-title

Se o idioma atual é o inglês, então nenhum código de duas letras deve ser usado (será apenas o permalink normal).

Até agora eu usei o filtro query_vars para adicionar uma consulta chamada lang , mas isso é muito diferente do que eu tenho, não sei ao certo quais são os próximos passos. Qualquer conselho muito apreciado!

    
por Simon Blackbourn 05.03.2013 / 00:39

2 respostas

1

Sua pergunta é complicada o suficiente para responder sozinha, mas eu sugiro que você instale o plugin qTranslate . Como a descrição do plugin diz:

  

Escolha um dos três modos para tornar seus URLs bonitos e amigáveis com SEO. - O   em todos os lugares compatível? lang = en, simples e bonito / pt / foo / ou bom   e puro en.yoursite.com

Você pode tentar inspecionar o código do plug-in e ver como eles o fazem, ou simplesmente usá-lo.

    
por Eugene Manuilov 05.03.2013 / 10:50
-1

Este é o filtro que estou usando:

function em_wpml_dbem_taxonomy_category_slug($option){
$lang = get_bloginfo('language');

if( $lang === 'es-ES' ){
    $option = 'eventos/categorias';
} else {
    $option = 'events/categories';
}
return $option;
}
add_filter('pre_option_dbem_taxonomy_category_slug', 'em_wpml_dbem_taxonomy_category_slug');
    
por jim.duck 26.08.2015 / 12:39