logo 2 pujashanti

Cara Membuat WordPress Multi bahasa Tanpa Plugin WPML & Polylang


Diperbarui:19 Mei 2026
|
Oleh:Gst Komang Yoga


WordPress Multi bahasa

Panduan Pro: Membuat WordPress Multi-Bahasa Tanpa Plugin (WPML/Polylang)

Cara Membuat WordPress Multi bahasa Tanpa Plugin WPML & Polylang: Memiliki situs multi bahasa seringkali menjadi dilema bagi pengembang web. Plugin populer seperti WPML atau Polylang memang memudahkan, namun mereka sering kali menyisakan “sampah” database yang besar dan membebani server (overhead).

Keunggulan Metode Custom Post Type (CPT)

Dengan menggunakan metode Custom Post Type, kita menciptakan struktur yang jauh lebih bersih bagi Situs web. Keunggulannya antara lain:

  • Database Sangat Ringan: Tidak ada tabel tambahan yang tidak perlu.
  • Kecepatan Server Maksimal: Mengurangi beban PHP saat memproses halaman (Sangat baik untuk skor PSI).
  • Kontrol Penuh: Anda memegang kendali atas struktur URL dan logika relasi antar bahasa.

Langkah Persiapan & Lingkungan Kerja

Sebelum mengeksekusi kode, pastikan lingkungan kerja Anda sudah siap:

  • Plugin WPCODE (Sangat Direkomendasikan): Gunakan ini untuk menginjeksi kode tanpa menyentuh functions.php. Ini menjaga kode tetap aman saat tema diperbarui dan menghindari risiko conflict.
  • Theme Twenty Twenty-Five: Tema ini memberikan fleksibilitas penuh untuk kustomisasi template tanpa batasan fitur.
  • Plugin AMPforWP (Opsional): Sistem ini sudah diuji stabil untuk membuat halaman versi AMP yang super cepat.

Catatan: Kode lengkap untuk sistem ini bisa Anda temukan di halaman Kumpulan Snippet WPCODE. Pastikan Anda menyalinnya dari sana sebelum memulai langkah di bawah ini.


Langkah-Langkah Implementasi Konten

Setelah kode diinjeksi melalui WPCODE, ikuti langkah operasional berikut untuk mulai membangun konten multi-bahasa:

1. Menyiapkan Homepage Versi Inggris

Agar URL root bahasa Inggris (/en/) berfungsi sebagai beranda, Anda perlu melakukan langkah berikut:

  • Buatlah sebuah halaman baru di dalam CPT English Page.
  • Berikan slug URL: /home/.
  • Logika Sistem: Kode rewrite URL yang telah dipasang akan secara otomatis mengenali slug ini dan mengalihkan (redirect) alamat /en/home/ menjadi URL cantik /en/.

2. Membuat Artikel atau Halaman Inggris Baru

Untuk mengisi konten internasional, cari menu English Articles atau English Pages di dashboard WordPress Anda:

  • Tambahkan post/page baru seperti biasa.
  • Penting: Pada panel Custom Field, tambahkan meta data relasi:
    • Gunakan key url_en jika Anda berada di editor halaman Indonesia.
    • Gunakan key url_id jika Anda berada di editor halaman Inggris.
  • Isikan nilai (value) berupa URL lengkap halaman pasangannya. Inilah yang menjadi “jembatan” bagi Language Switcher untuk bekerja.

Bedah Arsitektur: 9 Engine Multi-Language

Berikut adalah fungsi dari masing-masing kode yang akan Anda pasang:

  1. Registry Core (CPT & Hreflang): Mendaftarkan CPT English dan menyuntikkan meta tag <hreflang> agar Google mengenali relasi bahasa secara resmi.
  2. Rewrite English Home: Menghilangkan error 404 pada URL /en/ dan mendukung navigasi AMP.
  3. Custom Field Taxonomy: Menambahkan fitur input URL relasi khusus untuk editor kategori (Taxonomy) yang secara bawaan tidak didukung WordPress.
  4. Language Switcher Post & Page: Logika otomatis untuk mendeteksi relasi bahasa dan menampilkan tombol switcher di dalam konten.
  5. Language Switcher Khusus Taksonomi: Menangani navigasi bahasa khusus untuk halaman arsip/kategori agar tidak konflik dengan post biasa.
  6. Language Switcher Blog Index: Filter khusus untuk halaman daftar artikel (Blogpage) agar navigasi tetap konsisten.
  7. CSS All-in-One Switcher: Desain visual seragam untuk semua tombol switcher (Desktop & Mobile).
  8. CSS Khusus AMP: Kode gaya yang sudah difilter agar lolos validasi ketat sistem AMP.
  9. Language Switcher Khusus AMPforWP: Optimasi akhir agar navigasi bahasa berjalan sempurna di ekosistem AMP.

Setelah semua kode dan halaman siap, Anda WAJIB melakukan reset permalink. Jika tidak, struktur URL baru Anda akan menemui error 404.

Cara Melakukannya:

  1. Buka menu Settings (Pengaturan) > Permalinks.
  2. Tanpa mengubah pengaturan apapun, klik tombol Save Changes (Simpan Perubahan).
  3. Ulangi sekali lagi (Total 2x klik simpan).

Mengapa harus 2 kali?

Langkah ini memaksa WordPress menghapus cache struktur URL lama dan menulis ulang (flush) aturan navigasi yang baru ke dalam file .htaccess. Pengulangan kedua memastikan sistem benar-benar telah menyinkronkan seluruh aturan Rewrite URL dari Custom Post Type yang baru saja kita buat.


Dokumentasi Teknis: Custom Multilingual & Context-Aware Hreflang

1. Pendahuluan

Snippet ini dirancang untuk pengguna WordPress yang ingin memiliki sistem multibahasa (Indonesia – Inggris) tanpa menggunakan plugin berat seperti WPML atau Polylang. Kode ini bekerja dengan cara mendaftarkan Custom Post Type (CPT) khusus untuk konten Inggris dan mengelola tag meta SEO secara otomatis berdasarkan konteks URL.

2. Logika Kerja Kode

Snippet ini dibagi menjadi empat bagian utama yang saling terintegrasi:

A. Registrasi CPT & Taxonomy (init)

Sistem menciptakan “ruang kerja” baru di dashboard:

  • English Articles (english_content): Dengan slug /en/articles/.
  • English Pages (english_page): Dengan slug /en/.
  • Categories EN (english_category): Dengan slug /en/topic/.
  • Keunggulan: Memisahkan database konten bahasa agar struktur URL tetap bersih (SEO-friendly).

B. Deteksi Konteks (ps_is_english_context)

Ini adalah “otak” dari snippet ini. Fungsi ini memeriksa apakah halaman yang sedang diakses adalah bagian dari konten Inggris dengan mengecek:

  1. Apakah tipe postingan termasuk dalam CPT Inggris?
  2. Apakah sedang membuka kategori bahasa Inggris?
  3. Apakah URL mengandung folder /en/?

C. Injeksi Dynamic Hreflang (wp_head)

Hreflang sangat krusial agar Google tidak menganggap konten Anda sebagai duplikat.

  • Jika konteks English: Sistem memberikan tag hreflang=”en” pada URL tersebut dan hreflang=”id” pada root.
  • Jika konteks Indonesia: Sistem memberikan tag hreflang=”id” pada URL tersebut dan hreflang=”en” pada halaman utama /en/.
  • Dilengkapi dengan x-default sebagai sinyal bahasa utama global.

D. Manipulasi Output Buffer (template_redirect)

WordPress hanya mengizinkan satu bahasa utama di pengaturan Settings > General. Snippet ini melakukan interupsi pada output HTML untuk mengganti atribut lang=”id-ID” menjadi lang=”en-US” (atau sebaliknya) secara otomatis saat halaman dimuat, sehingga browser dan mesin pencari mendeteksi bahasa yang tepat.


3. Skenario Bahasa Default (Penting)

Kode ini bersifat adaptif. Berikut adalah hal yang perlu diperhatikan terkait pengaturan bahasa di dashboard WordPress:

Jika Default WordPress adalah…Maka Snippet Akan…
Bahasa Indonesia (Default)Membiarkan konten utama tetap ID, dan mengubah konten di /en/ menjadi EN.
English (US)Anda harus membalik logika pada Bagian 4 agar sistem mengubah konten utama menjadi ID, sementara konten /en/ tetap EN.

Lisensi: Kode ini dirilis di bawah MIT License. Anda bebas menggunakan, memodifikasi, dan mendistribusikannya selama menyertakan atribusi penulis asli.


Penutup

Dengan metode tanpa plugin ini, situs anda akan tetap ringan, memiliki performa SEO yang solid, dan memberikan pengalaman pengguna yang mulus tanpa ketergantungan pada plugin pihak ketiga yang berat. Selamat mencoba!

FAQ: WordPress Multi-Bahasa Tanpa Plugin

Mengapa metode CPT lebih baik daripada plugin WPML atau Polylang? +
Metode Custom Post Type (CPT) jauh lebih ringan karena tidak menambah tabel baru pada database. Ini menjaga performa server tetap stabil dan skor PageSpeed Insights (PSI) tetap tinggi karena tidak ada beban skrip pihak ketiga yang berat.
Bagaimana cara menghubungkan artikel Indonesia dengan versi Inggris? +
Anda cukup menggunakan panel Custom Fields pada editor post. Tambahkan key url_en pada artikel Indonesia dan isi dengan URL versi Inggrisnya. Lakukan hal sebaliknya (key url_id) pada artikel Inggris.
Apakah sistem ini aman untuk halaman versi AMP? +
Ya, kode ini telah diuji secara khusus agar kompatibel dengan plugin AMPforWP. Kami juga menyertakan CSS khusus AMP agar navigasi bahasa tetap valid dan tidak menyebabkan error pada sistem validasi AMP yang ketat.
Mengapa saya harus melakukan reset permalink sebanyak dua kali? +
Reset permalink (Save 2x) sangat krusial untuk melakukan flush rewrite rules. Langkah ini memaksa WordPress menghapus cache struktur URL lama dan mendaftarkan slug CPT baru (/en/) ke dalam sistem agar tidak terjadi error 404.
Dimana saya bisa mendapatkan kode lengkap untuk tutorial ini? +
Seluruh kode (9 bagian MULTILANG Engine) dapat Anda temukan dan salin langsung melalui halaman Kumpulan Snippet WPCODE di situs ini.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *