Due (o più) TLD paralleli (secondari) che vengono mantenuti durante la navigazione nel sito / l'impostazione dinamica dell'indirizzo del sito?


10

Sto gestendo un sito per una ONG tedesca sotto il dominio sub.example.org.
Di recente, ho aggiunto il sub.example.chsuo spin-off svizzero.

Entrambi i (sotto) domini puntano alla stessa posizione fisica, un'installazione WP ( non multisito).

L'ho configurato in modo tale che sub.example.ch/register, ad esempio, mostrerà correttamente il contenuto trovato sotto sub.example.org/register.

Tuttavia, quando un visitatore svizzero naviga sul sito utilizzando regolari collegamenti in loco, finirà inevitabilmente sul dominio "normale", poiché questi utilizzano l '"indirizzo WordPress" (o "indirizzo del sito") come definito nelle impostazioni generali , tramite get_home_urlo get_site_url()(o i loro get_bloginfo()equivalenti meno profondi ).

Idealmente , vorrei che il visitatore continuasse a navigare nel dominio che utilizzava per raggiungere il sito. Quindi, suppongo che dovrei in qualche modo filtrare il valore di ritorno delle funzioni menzionate. Un filtro che, per quanto ne so, non esiste.

  1. Qualcuno ha esperienza con questo genere di cose e una soluzione decente a portata di mano?

  2. È forse un'idea stupida e dovrei lasciarla andare in primo luogo?

Risposte:


9

È possibile filtrare le richieste di opzioni per l'host.

Nel tuo wp-config.php sotto la linea ...

require_once ABSPATH . 'wp-settings.php';

... aggiungi le seguenti righe:

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()non è disponibile in precedenza e dovresti conservare tale codice nel tuo wp-config.php. Non so se ci sono effetti collaterali o casi in cui non funziona. Non dovrebbe succedere, ma testalo accuratamente.


Lo proverò a fondo di sicuro. Adesso.
Johannes Pille,

4
12 ore dopo: funziona senza eccezioni. Che il valore dovrebbe derivare $_SERVER['HTTP_HOST']è piuttosto semplice, anche quello sarebbe stato il mio approccio. Durante la risposta, stavo tentando di utilizzare il bloginfo_urlfiltro da un plug-in. Non ha fatto il lavoro. Per mettere il filtro nel file di configurazione, tuttavia, avrei provato dopo giorni a contemplare solo, se non del tutto. Il risultato di questa soluzione ha superato le mie aspettative più sfrenate: non solo i collegamenti si risolvono bene, ma funzionano anche le credenziali di accesso e anche il back-end non soffoca! Grandiosità!
Johannes Pille,

1
Entrambi i (sotto) domini puntano alla stessa posizione fisica, un'installazione WP (non multisito). Per fare ciò, è necessario accedere al servizio di hosting. Quando si crea un sottodominio, dominio è necessario specificare una radice del documento. Qui, seleziona lo stesso percorso del tuo dominio principale con WP installato su di esso. Quindi aggiungi il codice. Funzionando perfettamente, prova a pensare al SEO (tag canonici e alternativi)
Romain,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.