Gunakan halaman WordPress sebagai ganti arsip jenis posting


15

Maaf jika ini adalah duplikat - saya tidak dapat menemukan jawaban.

Bagaimana cara menulis ulang halaman arsip jenis posting khusus ke halaman WordPress 'buatan manusia'?

Sebagai contoh:

  • Halaman tunggal: http://www.mywebsite.com/cool-post-type/awesome-single-post/
  • Halaman arsip: http://www.mywebsite.com/cool-post-type/

Saya ingin http://www.mywebsite.com/cool-post-type/menulis ulang http://www.mywebsite.com/about-cool-post-types/.

Bisakah saya melakukan ini dengan htaccess dan seperti apa sintaksnya? (Aku tidak pandai htaccess!)

Ini tidak bekerja:

RewriteRule ^cool-post-type\/\?$ /about-cool-post-types [L]

Atau apakah saya harus melakukan ini dalam kode sumber WordPress? Saya tidak mau!

Jawaban:


16

Yang ini sebenarnya cukup mudah. Ketika Anda mendeklarasikan tipe posting Anda menggunakan register_post_type , Anda perlu menambahkan argumen baru untuk 'has_archive'.

Jadi, Anda akan menambahkan sesuatu ke efek:

'has_archive' => 'about-cool-post-types'

Lalu, buka Pengaturan> Permalinks Anda untuk mengguyurnya dan itu akan berfungsi. Saya mengujinya secara lokal, dan ini tampaknya menjadi cara untuk secara otomatis menghasilkan halaman arsip Anda di URL yang berbeda. Kemudian, Anda harus dapat membuat halaman di siput CPT.


Ini berhenti berfungsi tetapi saya berhasil memperbaikinya dengan menetapkan 'has_archive' ke teks sewenang-wenang dan mengganti nama slug halaman saya ke slug kategori.
Warwick

7

Ada juga plugin 1 file sederhana untuk ini sekarang, oleh orang-orang HumanMade;

https://github.com/humanmade/page-for-post-type

(Meta: Saya tahu jawaban dengan tautan umumnya tidak bagus, tapi saya tidak hanya ingin menyalin dan menempelkan kode sumber untuk hal itu ke dalam jawaban. Apa strategi terbaik untuk hal semacam ini?)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.