Saya memiliki dua jenis pos kustom yang berhubungan dengan nama orang. Saat ini, dalam tampilan penelusuran, itu hanya mencantumkan semuanya secara alfabet dan pagination memecahnya berdasarkan angka, yang tidak terlalu membantu ketika Anda mencoba menemukan orang tertentu.
Secara khusus, saya diminta membuat tautan pagination untuk orang-orang yang terlihat seperti ini:
- AG
- HM
- NQ
- RQ
Masalah saya - Saya tidak tahu bagaimana saya bisa menanyakan jenis posting khusus dengan huruf pertama dari satu bidang. Kemudian, saya tidak yakin bagaimana cara membuat pagination dengan cara ini. Adakah yang punya saran? Terima kasih!
custom-post-types
pagination
mcleodm3
sumber
sumber
Jawaban:
Pertanyaan menarik! Saya menyelesaikannya dengan memperluas
WHERE
kueri dengan sekelompokpost_title LIKE 'A%' OR post_title LIKE 'B%' ...
klausa. Anda juga dapat menggunakan ekspresi reguler untuk melakukan pencarian rentang, tetapi saya yakin database tidak akan dapat menggunakan indeks.Ini adalah inti dari solusinya: filter pada
WHERE
klausa:Tentu saja Anda tidak ingin mengizinkan input eksternal acak dalam permintaan Anda. Itulah sebabnya saya memiliki langkah sanitasi input
pre_get_posts
, yang mengubah dua variabel kueri menjadi rentang yang valid. (Jika Anda menemukan cara untuk memecahkan ini, silakan tinggalkan komentar sehingga saya dapat memperbaikinya)Langkah terakhir adalah membuat aturan penulisan ulang yang cantik sehingga Anda dapat pergi ke
example.com/posts/a-g/
atauexample.com/posts/a
untuk melihat semua posting yang dimulai dengan huruf (kisaran) ini.Anda dapat mengubah pola aturan penulisan ulang untuk memulai dengan hal lain. Jika ini untuk jenis posting kustom, pastikan untuk menambah
&post_type=your_custom_post_type
substitusi (string kedua, yang dimulai denganindex.php
).Menambahkan tautan pagination dibiarkan sebagai latihan untuk pembaca :-)
sumber
like_escape()
:)Ini akan membantu Anda memulai. Saya tidak tahu bagaimana Anda akan memecah kueri pada surat tertentu dan kemudian memberi tahu WP bahwa ada halaman lain dengan lebih banyak surat, tetapi yang berikut mengambil 99% sisanya.
Jangan lupa untuk memposting solusi Anda!
sumber
Sebuah jawaban menggunakan contoh @ kaiser, dengan tipe posting khusus sebagai fungsi yang menerima alfa awal dan akhir params. Contoh ini jelas untuk daftar item pendek, karena tidak termasuk paging sekunder. Saya mempostingnya sehingga Anda dapat memasukkan konsep ke dalam Anda
functions.php
jika Anda mau.sumber
Ini cara untuk melakukannya dengan menggunakan
query_vars
danposts_where
filter:Souce: https://gist.github.com/3904986
sumber
Ini bukan jawaban, tapi lebih ke arah yang harus diambil. Ini mungkin harus 100% khusus - dan akan sangat terlibat. Anda harus membuat kueri sql khusus (menggunakan kelas wpdb) dan kemudian untuk pagination Anda akan meneruskan parameter ini ke kueri khusus Anda. Anda mungkin juga perlu membuat aturan penulisan ulang baru untuk ini. Beberapa fungsi yang perlu diperhatikan:
sumber