Dua (atau lebih) paralel (sub-) TLD yang dipertahankan saat menjelajahi situs / secara dinamis mengatur alamat situs?

10

Saya menjalankan situs untuk LSM Jerman di bawah domain sub.example.org.
Baru-baru ini, saya menambahkan sub.example.chspin-off Swiss-nya.

Kedua (sub-) domain menunjuk ke lokasi fisik yang sama, instalasi WP ( bukan multisite).

Saya sudah menyiapkannya sehingga sub.example.ch/register, misalnya, akan menampilkan dengan benar konten yang ditemukan di bawah sub.example.org/register.

Namun, ketika seorang pengunjung Swiss menjelajahi situs menggunakan tautan di tempat biasa, ia pasti akan berakhir di domain "biasa", karena mereka menggunakan "alamat WordPress" (atau "alamat situs") sebagaimana ditentukan dalam pengaturan umum , baik melalui get_home_urlatau get_site_url()(atau get_bloginfo()padanannya yang kurang dalam ).

Idealnya , saya ingin pengunjung tetap berselancar di bawah domain yang ia gunakan untuk mencapai situs. Oleh karena itu, saya kira saya harus memfilter nilai pengembalian fungsi yang disebutkan. Filter, yang, sejauh yang saya tahu, tidak ada.

  1. Apakah ada yang punya pengalaman dengan hal semacam ini dan solusi yang layak berguna?

  2. Apakah ini ide yang bodoh dan saya harus membiarkannya?

Johannes Pille
sumber

Jawaban:

9

Anda bisa memfilter permintaan opsi untuk host.

Di wp-config.php bawah garis Anda ...

require_once ABSPATH . 'wp-settings.php';

... tambahkan baris berikut:

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()tidak tersedia sebelumnya, dan Anda harus menyimpan kode tersebut di wp-config.php. Saya tidak tahu apakah ada efek samping atau kasus di mana itu tidak berhasil. Seharusnya tidak terjadi, tetapi ujilah dengan seksama.

fuxia
sumber
Saya akan mengujinya dengan seksama pasti. Sekarang.
Johannes Pille
4
12 jam kemudian: Bekerja tanpa kecuali. Bahwa nilai itu harus datang $_SERVER['HTTP_HOST']cukup mudah, itu akan menjadi pendekatan saya juga. Ketika ini sedang dijawab, saya mencoba untuk menggunakan bloginfo_urlfilter dari sebuah plugin. Apakah tidak melakukan pekerjaan. Untuk menempatkan pemfilteran dalam file konfigurasi, bagaimanapun, saya akan mencoba setelah berhari-hari hanya merenungkan, jika sama sekali. Hasil dari solusi ini melampaui harapan saya yang paling liar: Tidak hanya tautan menyelesaikan dengan baik, kredensial masuk juga berfungsi dan bahkan back-end tidak tersedak! Keangkeran!
Johannes Pille
1
Kedua (sub-) domain menunjuk ke lokasi fisik yang sama, instalasi WP (bukan multisite). Lakukan demikian, Anda harus masuk ke layanan hosting Anda. Saat Anda membuat subdomain, domain Anda harus menentukan root dokumen. Di sini, pilih jalur yang sama dengan Domain utama Anda dengan WP terpasang di sana. Lalu, tambahkan kodenya. Bekerja dengan sempurna, coba pikirkan tentang SEO (kanonik dan tag pengganti)
Romain