Dois (ou mais) TLDs (sub) paralelos que são retidos ao navegar no site / definem dinamicamente o endereço do site?

10

Estou executando um site para uma ONG alemã sob o domínio sub.example.org.
Recentemente, adicionei sub.example.chseu spin-off suíço.

Os dois (sub-) domínios estão apontando para o mesmo local físico, uma instalação do WP ( não multisite).

Eu o tenho configurado de forma que sub.example.ch/register, por exemplo, mostre corretamente o conteúdo encontrado em sub.example.org/register.

No entanto, quando um visitante suíço navega no site usando links regulares no site, ele inevitavelmente acaba no domínio "regular", uma vez que utiliza o "endereço WordPress" (ou "endereço do site"), conforme definido nas configurações gerais , via get_home_urlou get_site_url()(ou seus get_bloginfo()equivalentes menos profundos ).

Idealmente , eu gostaria que o visitante continuasse navegando no domínio que ele ou ela usava para acessar o site. Portanto, suponho que eu teria que, de alguma forma, filtrar o valor de retorno das funções mencionadas. Um filtro que, até onde eu sei, não existe.

  1. Alguém tem experiência com esse tipo de coisa e uma solução decente à mão?

  2. Esta é talvez uma ideia idiota e eu deveria deixá-la em primeiro lugar?

Johannes Pille
fonte

Respostas:

9

Você pode filtrar as solicitações de opção para o host.

No seu wp-config.php abaixo da linha…

require_once ABSPATH . 'wp-settings.php';

… Adicione as seguintes linhas:

add_filter( 'pre_option_home', 'set_current_host' );
add_filter( 'pre_option_siteurl', 'set_current_host' );

function set_current_host()
{
    return 'http://' . $_SERVER['HTTP_HOST'];
}

add_filter()não está disponível anteriormente e você deve manter esse código no seu wp-config.php. Não sei se há efeitos colaterais ou casos em que não funciona. Não deve acontecer, mas teste-o completamente.

fuxia
fonte
Vou testá-lo completamente, com certeza. Agora.
Johannes Pille
4
12 horas depois: funciona sem exceção. Que o valor teria que vir $_SERVER['HTTP_HOST']é bastante direto, essa teria sido minha abordagem também. Enquanto isso estava sendo respondido, eu estava tentando utilizar o bloginfo_urlfiltro de um plug-in. Será que não fazer o trabalho. Para colocar a filtragem no arquivo de configuração, no entanto, eu tentaria depois de dias contemplando apenas, se for o caso. O resultado dessa solução superou minhas expectativas mais loucas: os links não são resolvidos muito bem, as credenciais de login também funcionam e mesmo o back-end não engasga! Maravilha!
precisa saber é o seguinte
11
Os dois (sub-) domínios estão apontando para o mesmo local físico, uma instalação do WP (não multisite). Faça isso, você precisa fazer login no seu serviço de hospedagem. Ao criar um subdomínio, domínio, você deve especificar uma raiz do documento. Aqui, selecione o mesmo caminho que o seu domínio principal com o WP instalado. Em seguida, adicione o código. Funcionando perfeitamente, tentar pensar sobre SEO (tags canônicas e suplentes)
Romain