Cara Kerja Subdomain Router Interception pada WDP Link Post
Subdomain Router Interception pada WDP Link Post bekerja dengan membaca variabel
HTTP_HOSTpada faseplugins_loadeddaninit. Router memisahkan bagian prefix subdomain dari domain dasar, memverifikasi apakah prefix tersebut cocok dengan postingan undangan yang aktif, lalu memodifikasi query inti WordPress sebelum template di-load oleh peramban.
Mengapa Subdomain Wildcard Memerlukan Penanganan Khusus?
Secara bawaan, WordPress mengenali alamat website hanya berdasarkan pengaturan siteurl dan home yang tersimpan di tabel wp_options. Ketika ada pengunjung mengakses subdomain seperti https://andy-zhea.websiteundangan.com:
- Server DNS berhasil mengarahkan pengunjung ke IP server hosting (berkat DNS record wildcard
*.websiteundangan.com). - Server web (Apache atau LiteSpeed) menyalurkan request ke direktori root WordPress.
- Tetapi WordPress mengalami kebingungan: WordPress mengira URL tersebut bukan bagian dari situs sah miliknya, lalu memicu pengalihan paksa (canonical redirect 301) kembali ke domain utama, atau langsung menampilkan halaman error 404 Not Found.
Kendala Tanpa Intersepsi Tingkat Rendah pada WordPress Core
Jika vendor mencoba mengakali perilaku canonical redirect ini menggunakan plugin redirect biasa:
- Pengunjung mengalami pengalihan URL yang tampak jelas di bilah alamat (URL jumping), sehingga subdomain hilang dan kembali ke URL panjang.
- Parameter nama tamu (
?to=Nama+Tamu) kerap kali terpotong di tengah proses redirect. - Server mengalami beban ganda karena harus melayani dua hingga tiga kali handshake HTTP untuk satu kali kunjungan tamu.
Kondisi ini membuat branding vendor terlihat amatir dan mengacaukan distribusi undangan digital bagi pasangan pengantin.
Anatomi Siklus Hidup Router Interception WDP Link Post
WDP Link Post menyisipkan pengendali khusus pada siklus hidup inisialisasi WordPress (WordPress Lifecycle Engine) untuk menangani perutean sebelum canonical redirect dijalankan.
Tahapan Kerja Komponen Router
- Pengecekan Host Awal (
inithook):
Router memeriksa apakah host yang masuk sama dengan domain utama sistem. Jika sama, router langsung berhenti dan membiarkan WordPress berjalan biasa.
- Parsing Prefix Subdomain:
Jika host berbeda, router mengekstrak bagian awal string:
Masukan: andy-zhea.websiteundangan.com
Base Domain Terdaftar: websiteundangan.com
Prefix Terisolasi: andy-zhea
- Pencarian Postingan:
Router menjalankan kueri cepat ke basis data untuk mencocokkan prefix dengan field post_name (slug) atau meta data _wdplp_subdomain:
SELECT ID, post_status FROM wp_posts
WHERE post_name = 'andy-zhea' AND post_status = 'publish'
LIMIT 1;
- Penonaktifan Canonical Redirect:
WDP Link Post menonaktifkan hook bawaan WordPress redirect_canonical khusus untuk request yang valid:
remove_action('template_redirect', 'redirect_canonical');
- Injeksi Parameter Query:
Variabel lingkungan $wp_query diisi dengan data postingan hasil pencarian, sehingga template undangan langsung dirender secara transparan.
Skenario Operasional: Andy & Zhea
Pasangan pengantin Andy dan Zhea memilih paket Tier 1 Subdomain dari vendor mereka.
- Base Domain Vendor:
websiteundangan.com - Subdomain Klien:
andy-zhea.websiteundangan.com - Postingan Asli WordPress: Halaman dengan ID
204dan slugandy-zhea
Ketika tamu membuka link undangan di smartphone:
- Permintaan masuk dengan header host
andy-zhea.websiteundangan.com. - Router WDP Link Post mendeteksi bahwa
websiteundangan.comterdaftar di daftar base pool. - Prefix
andy-zheadipetakan ke Post ID 204. - Filter
pre_handle_404dicegat agar WordPress tidak mengeluarkan status HTTP 404. - Halaman undangan tampil sempurna dengan status HTTP 200 OK dan URL di peramban tetap rapi:
https://andy-zhea.websiteundangan.com.
Perbandingan Kinerja Router
| Kondisi | Tanpa WDP Link Post | Dengan WDP Link Post |
|---|---|---|
| Respon Canonical | Redirect 301 ke domain utama | Tetap di host subdomain (200 OK) |
| Konsumsi Query | Rata-rata 25-40 query umum | 1 query terindeks hemat memori |
| Waktu Eksekusi | > 350 ms (karena redirect) | < 80 ms (eksekusi langsung) |
| Preservasi URL | Gagal (Alamat berubah) | Berhasil (Alamat permanen) |