Jadi ini membuatku benar-benar gila. Saya telah menghabiskan waktu berhari-hari untuk memperbaiki ini dan saya tidak dapat menemukan mengapa hal ini sangat sulit karena pastinya ini adalah struktur permalink yang sangat umum!
Saya melihat melalui ratusan jawaban dan posting dan sepertinya tidak ada yang menyelesaikan masalah.
Saya hanya ingin struktur ini:
mysite.com/custom-post-type/custom-taxonomy-term/post-name
Jadi saya mencapai yang berikut:
mysite.com/literature - all literature posts
mysite.com/literature/fiction - all literature posts with 'fiction' term
mysite.com/literature/fiction/mybook - the post
Setiap kali saya mencoba sesuatu, saya mendapatkan 404 kesalahan atau kesalahan itu tidak berhasil.
Saya tidak mengerti mengapa ini sangat sulit!
Bantuan apa pun sangat dihargai!
Terima kasih
================================================== ==== ================== INFORMASI TAMBAHAN ==================
Saat ini saya sedang mendaftarkan jenis tulisan dan taksonomi sebagai berikut:
register_post_type('literature',$args);
'rewrite' => array('slug' => 'literature/books','with_front' => false),
register_taxonomy('literature_category',array('literature'), array(
'rewrite' => array( 'slug' => 'literature','with_front' => false ),
Jika saya mendaftarkan keduanya sebagai 'literatur' saya mendapatkan 404 di halaman mysite.com/literature tetapi ini menampilkan permalink saya sebagai: mysite.com/literature/books/mybook
Setelah mengikuti saran tentang pertanyaan ini - Jenis pos kustom, taksonomi, dan tautan permanen
Saya telah menambahkan ini ke fungsi saya:
function filter_post_type_link($link, $post) {
if ($post->post_type != 'literature')
return $link;
if ($cats = get_the_terms($post->ID, 'literature_category'))
$link = str_replace('%literature_category%', array_pop($cats)->slug, $link);
return $link;
}
add_filter('post_type_link', 'filter_post_type_link', 10, 2);
Dan mengubah jenis posting saya menjadi 'slug' => 'literature/%literature_category%'
Dan mengubah taksonomi saya menjadi'slug' => 'literature'
Ini berfungsi baik kecuali bahwa pada mysite.com/literature
pagination tidak berfungsi, jadi saya mendapatkan kesalahan 404 pada url berikut:
mysite.com/literature/page/2/
sumber
Jawaban:
Ikuti saran pada pertanyaan ini seperti yang sudah Anda lakukan, tetapi tambahkan ini ke kode Anda:
Terakhir, buka Pengaturan> Permalinks dan tekan simpan. Jika masih tidak berhasil, simpan permalink Anda lagi. Terkadang saya merasa Anda harus menyelamatkan mereka dua kali, tetapi siapa yang tahu. Ngomong-ngomong, Beri tahu saya bagaimana Anda keluar. Perhatikan bahwa Jawaban Standar Ilmu Komputer # 1 berlaku: Ini Berhasil Untuk Saya ... ;-)
Dari tanah TMI ...
Sebagai referensi, alasan mengapa halaman tidak bekerja secara default adalah karena WordPress membuat aturan penulisan ulang untuk literatur /% literature_category% /% book% /% page%, yang masuk akal jika Anda memikirkannya. Jadi permalink default Anda memiliki aturan bersaing ini dalam urutan ini:
Yang benar-benar kami lakukan di sini adalah mengubah urutan ini dengan membatalkan pengaturan yang terakhir (kami dapat menyimpannya, tetapi kemudian setiap penulisan ulang sesudahnya memiliki satu regex lagi untuk dijalankan pada pemuatan halaman) dan menambahkannya ke awal array.
Fakta menyenangkan: Jika Anda pernah memiliki "buku" berjudul "halaman" dan memiliki banyak halaman, pesanan ini akan bertentangan dan halaman berikutnya tidak akan berfungsi!
sumber