dalam tema saya, saya ingin mendefinisikan serangkaian jenis posting kustom dan taksonomi kustom, masing-masing memiliki siput disesuaikan sendiri; bahasa dasar tema saya adalah bahasa Inggris, oleh karena itu siput akan menggunakan bahasa Inggris
misalnya saat mendefinisikan slug jenis pos "produk" khusus:
'rewrite' => array( 'slug' => 'product' ),
apakah ada cara untuk menerjemahkan "slug" melalui file po / mo? bisakah saya menyebutnya:
'rewrite' => array( 'slug' => __('product', 'mytextdomain') )
atau itu tidak akan berhasil? apa praktik saat ini untuk melokalisasi siput?
prensa
dengan set siputprensa
. Menggunakan WPML halaman slug yang diterjemahkan adalahpress
karena tidak bisaprensa
lagi: / en / press / yang tidak menampilkan apa-apa (perhatikan bahwa sekarang mengklik tautan ES tidak membawa Anda kembali ke / prensa /). TETAPI, jika Anda mengunjungi / id / prensa / itu berfungsi ...Jawaban:
Saya tidak akan mencoba melokalisasi siput Anda. Alih-alih, mengapa tidak memberi pengguna Anda opsi untuk mengubahnya dengan menambahkan bidang lain ke halaman pengaturan permalink?
Kaitkan ke dalam
load-options-permalink.php
dan atur beberapa hal untuk menangkap$_POST
data untuk menyimpan siput Anda. Tambahkan juga bidang pengaturan ke halaman.Kemudian fungsi panggil kembali untuk bidang pengaturan:
Kemudian ketika Anda mendaftarkan jenis posting Anda, ambil siput dengan
get_option
. Jika tidak ada, gunakan default Anda.Inilah bagian bidang pengaturan sebagai plugin https://gist.github.com/1275867
EDIT: Opsi Lain
Anda juga bisa mengubah siput berdasarkan apa yang didefinisikan dalam
WPLANG
konstanta.Cukup tulis fungsi cepat yang menyimpan data ...
Lalu dapatkan siput tempat Anda mendaftarkan jenis posting khusus Anda.
Opsi terbaik, IMO, adalah memberi pengguna opsi dan memberikan default yang solid:
sumber
wpse30021
?Jika itu tidak berhasil. Mengapa tidak Anda lakukan saja:
sumber
Saya melakukan hal itu dalam sebuah tema yang sedang kami kembangkan. Ini tersedia dalam 5 bahasa yang berbeda, dan setiap bahasa memiliki seperangkat kategori yang diterjemahkan. Komponen pertama URL dalam tema diuraikan untuk menentukan bahasa mana yang digunakan, dalam format bahasa negara:
Dan kemudian kategori yang diterjemahkan diuraikan sebagai komponen lebih lanjut dari URL.
URL diuraikan dalam
parse_request
fase:Contoh ini tidak memiliki pemeriksaan yang diperlukan, tetapi dimaksudkan hanya sebagai contoh.
Tentu saja ada kelemahan pada pendekatan ini, tetapi memungkinkan URL alami dalam semua bahasa. Kelemahan utama yang saya lihat adalah:
1) Itu tidak menggunakan mekanisme permalink. Ini mungkin dapat diperpanjang sehingga aturan permalink yang tepat untuk semua bahasa dihasilkan dan parse_request tidak diperlukan, tetapi untuk melakukannya untuk semua bahasa akan melibatkan memuat satu file MO demi satu dalam satu lingkaran, dan saya tidak tahu seberapa baik didukung itu.
2) Jika penerjemah mengubah siput, maka tautannya akan batal.
sumber
Anda dapat mencoba ini di
functions.php
seperti yang terlihat di sini
sumber
Saya akan merekomendasikan untuk tidak membuat siput dapat diterjemahkan .
Terjemahan untuk konten situs yang menghadap pengguna . Siput digunakan secara internal , dan hanya sedikit "menghadap publik" melalui penulisan ulang URL - dan URL juga tidak boleh diterjemahkan .
Jadi: tinggalkan siput Anda sendiri, saat Anda mendefinisikannya. Hanya buat string yang dapat diterjemahkan yang dimaksudkan untuk konsumsi publik .
sumber