Saya memiliki halaman dengan dua bagian, masing-masing menggunakan yang berbeda WP_Query()
untuk menarik events
, yang merupakan jenis posting kustom. Setiap WP_Query()
pertanyaan meta_key
untuk tanggal acara sehingga Bagian 1 hanya menampilkan mendatang events
dan Bagian 2 menampilkan masa lalu events
.
events
Bagian 1 yang akan datang menampilkan semua informasi yang relevan di halaman saya, jadi mengkliknya tidak mungkin.
Masa lalu events
di Bagian 2 hanya menampilkan event
judul dan dapat diklik. Saat pengguna mengeklik masa lalu, event
mereka menautkan ke single-event.php
templat khusus untuk masa lalu event
.
Saya ingin menampilkan navigasi Sebelumnya / Berikutnya dalam single-event.php
template, tetapi navigasi seharusnya hanya menunjukkan masa lalu events
.
Saya mencoba menggunakan next_post_link()
dan previous_post_link()
tetapi ini akan menghubungkan ke mendatang events
juga, yang saya tidak mau. Saya mungkin dapat mengatur yang baru WP_Query()
pada saya single-event.php
dan mengulanginya untuk mendapatkan ID Sebelumnya / Berikutnya, tetapi mengulangi kueri sepertinya langkah yang drastis.
Saya akan sangat menghargai beberapa wawasan tentang cara untuk menyaring keluar events
dari tautan posting Sebelumnya / Berikutnya saya. Saya telah melihat pertanyaan ini, tetapi saya lebih suka tidak menggunakan plugin.
get_adjacent_post
fungsi.WP_Query
, kemudian memeriksa$your_query_object->request
, yang akan mengungkapkan sedikit SQL yang Anda butuhkan untuk melakukannya.Jawaban:
Saya berhasil membuatnya berfungsi hanya dengan menggunakan filter WordPress, berkat petunjuk @ Milo.
Harap perhatikan bahwa ini cukup spesifik untuk kasus saya, tetapi Anda seharusnya tidak memiliki masalah memodifikasinya untuk Anda gunakan sendiri. Saya menggunakan Bidang Kustom Tingkat Lanjut dengan bidang Pemilih Tanggal yang dipanggil
date
dan tautan Sebelumnya / Berikutnya hanya menunjuk ke acara dengandate
bidang yang disetel ke hari apa pun sebelum hari ini.Saya membuat 5 filter:
JOIN
(menambahwp_postmeta
)WHERE
untuk tautan SebelumnyaWHERE
untuk tautan BerikutnyaSORT
untuk tautan SebelumnyaSORT
untuk tautan BerikutnyaInilah yang saya buat, tampaknya berhasil tetapi jika ada yang melihat masalah apa pun, saya akan sangat menyukai umpan balik:
sumber
Saya punya masalah yang hampir sama, perlu menyortir dan mengecualikan beberapa posting dari navigasi prev / next. masalah dengan solusi @ cfx adalah: tidak mampu untuk ajax:
is_singular()
fungsi mengembalikan false, jika Anda memuat konten melalui wp-ajax. jadi itu berfungsi pada pemuatan halaman, tetapi tidak, ketika konten diubah oleh ajax.global $post;
membantu saya di sini.inilah solusi saya:
dalam hal ini, kueri bidang costum adalah: kecualikan semua posting, yang telah
not_clickable
disetel ketrue
.masalah lain yang saya temui: saya memiliki beberapa konten yang dibuat dan kemudian menerapkan bidang khusus itu sesudahnya .. jadi kueri juga mengecualikan posting yang bahkan tidak memiliki bidang yang dilampirkan pada posting, tidak peduli apakah benar atau salah. Ingatlah itu, saat menggunakan jenis penyaringan ini. pastikan bahwa setiap posting memiliki nilai atau pertimbangkan ini dalam sintaks sql Anda ..
sumber