Mencoba membangun pencarian yang tidak hanya mencari default (judul, konten, dll) tetapi juga bidang khusus tertentu.
Permintaan saya saat ini:
$args = array(
'post_type' => 'post',
's' => $query,
'meta_query' => array(
array(
'key' => 'speel',
'value' => $query,
'compare' => 'LIKE'
)
)
);
$search = new WP_Query( $args )
...
Ini mengembalikan posting yang cocok dengan permintaan pencarian DAN permintaan meta, tapi saya juga ingin itu untuk mengembalikan posting di mana itu hanya cocok dengan salah satu dari mereka.
Ada ide?
custom-field
search
meta-query
Lukas
sumber
sumber
Jawaban:
Saya telah mencari berjam-jam solusi untuk masalah ini. Penggabungan array bukan cara yang harus dilakukan, terutama ketika kueri kompleks dan Anda harus dapat menambahkan meta queri di masa mendatang. Solusi yang indah secara sederhana adalah mengubah 's' menjadi yang memungkinkan pencarian judul dan bidang meta.
Pemakaian:
sumber
Banyak kode dapat dikurangi dengan menggunakan versi modifikasi dari jawaban ini .
sumber
$result->post_count = count( $result->posts );
karena saya hanya mendapatkan 1 hasil sebaliknya.Saya telah mengoptimalkan @Stabir Kira menjawab sedikit
Sekarang Anda dapat mencari berdasarkan (judul, konten, excrept) atau (bidang meta) atau (keduanya).
sumber
Sesuai saran Nick Perkins , saya harus menggabungkan dua pertanyaan seperti:
sumber
Yah jenis hacknya tapi berhasil. Anda perlu menambahkan filter posts_clauses. Fungsi filter ini memeriksa apakah ada kata kueri yang ada di bidang khusus "speel" dan kueri yang tersisa tetap utuh.
sumber
saya memiliki masalah yang sama, untuk situs baru saya, saya baru saja menambahkan meta "judul" baru:
functions.php
Dan kemudian .. tambahkan saja seperti itu:
Apa pendapat Anda tentang solusi ini?
sumber
Semua solusi di atas hanya mengembalikan hasil jika ada kecocokan dalam meta key speel. Jika Anda memiliki hasil di tempat lain tetapi tidak di bidang ini, Anda tidak akan mendapatkan apa-apa. Tidak ada yang menginginkan itu.
Gabung kiri diperlukan. Berikut ini akan membuat satu.
sumber
Ini adalah solusi hebat tetapi Anda harus memperbaiki satu hal. Ketika Anda memanggil 'post__in', Anda perlu mengatur larik id dan $ unik adalah larik posting.
contoh:
sumber
@ satbir-kira jawaban berfungsi dengan baik tetapi hanya akan mencari melalui meta dan judul posting. Jika Anda ingin mencari melalui meta, judul, dan konten, berikut adalah versi yang dimodifikasi.
Dan ini dia penggunaannya:
Ganti
$get['search']
dengan nilai pencarian Andasumber