Saya telah membuat jenis posting khusus dan telah melampirkan beberapa bidang khusus untuknya. Sekarang saya ingin pencarian yang penulis dapat lakukan pada layar daftar posting kustom (di admin backend) juga dilakukan pada bidang meta dan tidak hanya melihat pada judul dan konten seperti biasa.
Di mana saya bisa menghubungkan dan kode apa yang harus saya gunakan?
Contoh gambar
Stefano
custom-post-types
custom-field
search
Stefano
sumber
sumber
Jawaban:
Saya memecahkan pemfilteran kueri dengan menambahkan gabungan pada tabel postmeta dan mengubah klausa where. tips untuk memfilter klausa WHERE (seringkali membutuhkan pencarian & penggantian ekspresi reguler) ada di sini di codex :
sumber
Jawaban Stefano bagus tetapi tidak memiliki klausa yang berbeda:
Tambahkan kode di atas perbarui dan itu akan bekerja tanpa duplikat.
sumber
Ini akan bekerja,
sumber
if ( $query->query['post_type'] != 'your_custom_post_type' ){ return; }
bagian atas fungsi akan menghentikan ini dari pencarian lainnya. Perhatikan bahwa teknik dalam jawaban ini tidak lagi mencari post_title dan menambahkan bahwa kembali tidak sepele.get_search_query()
selanjutnyaget_query_var( 's' )
. Karena "s" disetel ke string kosong, hasil pencarian untuk "" akan selalu memiliki nilai kosong di antara tanda kutip. Apakah ada perubahan pada solusi ini yang mengatasi ini?Jawaban 1: Tambahkan kode ini dalam file fungsi, dan ubah dan tambahkan lebih banyak nama kolom, yang telah Anda gunakan dalam jenis posting kustom Anda
Jawaban 2: Disarankan Gunakan kode ini dalam file fungsi tanpa perubahan apa pun
sumber
Ini bukan pencarian, tetapi beberapa "pilih" dengan nilai berbeda.
Dalam file functions-iworks-posts-filter.zip Anda memiliki contoh cara menambahkan filter untuk posting biasa oleh beberapa meta_key. Saya pikir itu mudah untuk dikonversi.
sumber
Versi kode di sini dalam beberapa jawaban yang mengubah parameter meta_query dari WP_Query pencarian di pre_get_posts tidak lagi mencari post_title. Menambahkan kemampuan untuk mencari judul posting, ATAU nilai-nilai meta tidak dapat dilakukan secara langsung di WP_Query tanpa memodifikasi SQL, sayangnya, karena pertanyaan ini menguraikan: Menggunakan kueri meta ('meta_query') dengan kueri penelusuran ('s')
Saya telah menggabungkan beberapa teknik di sini untuk mendapatkan versi yang berfungsi yang menghindari preg_replaces dan terlalu banyak modifikasi SQL (saya berharap ini bisa dihindari sepenuhnya). Satu-satunya downside adalah bahwa setelah pencarian, teks subtitle di bagian atas halaman mengatakan "Hasil pencarian untuk ''". Saya baru saja menyembunyikannya dengan CSS untuk jenis posting khusus plugin saya.
sumber