Saya tahu itu tidak disarankan dan ada banyak diskusi tentang argumen ini di luar sana. Sayangnya, setelah seminggu mencoba dan menguji, saya belum berhasil menghapus siput dari tipe kustom saya. Inilah situasinya:
Struktur url yang saya butuhkan
- post / blog / my-blog-post [ok!]
- halaman / induk-layanan / layanan [ok!]
- portfolio / portfolio / my-first-work [ok!]
- static / parent-static-page / static-page [<<< --- inilah masalahnya]
Konfigurasi saya
- Wordpress 3.5.2
- Jenis khusus 'statis': hierarkis; tanpa aturan 'tulis ulang'.
- Jenis 'portofolio' khusus: tidak hierarkis; 'rewrite' => array ('with_front' => false)
- Struktur permalink: / blog /% postname% /
- Sebagai halaman depan saya mengatur halaman statis 'blog'
Masalah
- posting blog / my-blog-post [ok!]
- halaman / situs web / situs web dinamis [ok!]
- portfolio / portfolio / my-first-work [ok!]
- static / who-i-am / terms [<<< --- inilah masalahnya]
Apa yang saya coba
Tidak ada
Pada awalnya, seperti yang diharapkan, url dari pos 'statis' "Halaman pengujian saya" adalah / blog / static / my-test-page
'rewrite' => array ('slug' => '', 'with_front' => false)
Saya telah menghapus bagian depan dari url ... bagus! Sekarang saya sudah / static / my-test-page
'rewrite' => array ('slug' => false, 'with_front' => false)
Itu tidak menghapus siput. Saya memiliki / static / my-test-page .
'rewrite' => array ('slug' => '/', 'with_front' => false)
Ini menghapus siput! Sekarang saya memiliki / my-test-page . Sayangnya semua halaman mengembalikan saya kesalahan 404 .
Plugin 'Hapus siput dari jenis pos khusus'
Meskipun hanya berfungsi jika struktur permalink saya adalah /% postname%, saya sudah mencoba menginstal plugin ini dan mengubah struktur permalink saya untuk melakukan tes. Ini bekerja, tetapi sayangnya tidak menghormati sifat hierarkis tipe 'statis' saya.
Tutorial oleh Joakin Lim
Itu tidak bekerja. Secara khusus, setelah menambahkan function book_rewrite_rule()
dikatakan bahwa jenis kustom saya sekarang akan dapat diakses dari / my-test-page serta / static / my-test-page , tetapi tidak berfungsi untuk saya. Saya hanya dapat mengakses dari / static / my-test-page . Saya sudah mencoba juga untuk menerapkan semua tutorial, juga melakukan beberapa perubahan dan tes, tetapi tidak berhasil
Tutorial dari vip.wordpress
Jika saya mengubah 'acara' dengan 'statis' di kedua fungsi, saya dapat mengakses halaman saya dari blog / parent-page / my-test-page . Jika saya menambahkan 'rewrite' => ('with_front' => false) semuanya brokes dan saya hanya dapat mengakses dari halaman statis / parent-page / my-test-page
Solusi dan tes lainnya
Sayangnya, dengan reputasi saya yang sebenarnya, saya tidak dapat menautkan lebih dari dua tautan. Tapi saya sudah mencoba juga solusi yang ditemukan di ryansechrest.com, shibashake.com dan - tentu saja - SEMUA pertanyaan yang diposting di portal ini sebelumnya. Tentu saja setiap kali saya menghapus semua aturan permalink, mengunjungi halaman pengaturan, menyimpan opsi, mengubahnya dua kali dan menyimpannya lagi, menggunakan global $wp_rewrite; $wp_rewrite->flush_rules();
. Saya sudah mencoba banyak kombinasi dengan array 'tulis ulang' dan berbagai solusi di atas.
Apakah Anda punya saran?
sumber
Jawaban:
Untuk mencapai ini, saya selalu menonaktifkan siput ketika menambahkan jenis posting kustom, dan menambahkan penulisan ulang kustom dengan
add_rewrite_rule
fungsi.Lihat juga halaman kodeks ini: https://codex.wordpress.org/Rewrite_API/add_rewrite_rule
sumber