Membuat struktur tautan permanen khusus untuk bahasa

9

Saya telah menulis sistem multi-bahasa yang sederhana, dengan mengklik ikon bendera menetapkan cookie satu tahun yang berisi kode bahasa dua huruf (misalnya nl, de, dll).

Saya menghubungkan ke wptindakan untuk membaca nilai cookie, kemudian menggunakan the_titledan the_contentfilter untuk menunjukkan bahasa yang benar (berbagai bahasa dimasukkan melalui metabox pada halaman / posting layar edit).

Ini semua berfungsi dengan baik kecuali saya juga ingin memiliki permalink untuk setiap versi bahasa di mana kode bahasa dua huruf berada di antara nama domain dan struktur permalink yang biasa. Saya menggunakan %postname%struktur permalink, jadi semua yang berikut ini akan valid:

http://example.com/nl/about-us
http://example.com/de
http://example.com/fr/2012/03
http://example.com/es/this-is-a-post-title

Jika bahasa saat ini adalah bahasa Inggris, maka tidak ada dua kode huruf yang harus digunakan (itu hanya akan menjadi permalink normal).

Sejauh ini saya telah menggunakan query_varsfilter untuk menambahkan permintaan yang disebut lang, tetapi sejauh ini saya sudah, saya tidak yakin apa langkah selanjutnya. Setiap saran sangat dihargai!

Simon Blackbourn
sumber
1
terima kasih @ l2aelba, jawaban itu cukup dekat dengan apa yang saya butuhkan dengan beberapa perubahan kecil.
Simon Blackbourn
Apakah Anda memiliki subdomain untuk ini atau hanya satu situs web
kennethjfalbous
hanya satu situs web
Simon Blackbourn

Jawaban:

1

Pertanyaan Anda cukup rumit untuk dijawab sendiri, tetapi saya sarankan Anda untuk menginstal qTranslateplugin. Seperti yang dijelaskan oleh plugin plugin:

Pilih salah satu dari 3 Mode untuk membuat URL Anda cantik dan ramah-SEO. - Yang kompatibel di mana-mana? Lang = en, sederhana dan indah / en / foo / atau en.yoursite.com bagus dan rapi

Jadi Anda dapat mencoba memeriksa kode plugin dan melihat bagaimana mereka melakukannya, atau cukup gunakan saja.

Eugene Manuilov
sumber
1
terima kasih untuk tautannya, saya akan melihat apakah saya dapat mendekonstruksi kodenya.
Simon Blackbourn
-1

Ini adalah filter yang saya gunakan:

function em_wpml_dbem_taxonomy_category_slug($option){
$lang = get_bloginfo('language');

if( $lang === 'es-ES' ){
    $option = 'eventos/categorias';
} else {
    $option = 'events/categories';
}
return $option;
}
add_filter('pre_option_dbem_taxonomy_category_slug', 'em_wpml_dbem_taxonomy_category_slug');
jim. sial
sumber
2
Silakan tambahkan penjelasan untuk jawaban Anda - terima kasih.
Nicolai