Saya melihat banyak orang lebih suka menggunakan kait pre_get_posts daripada query_posts
Yay!
Jadi pre_get_posts
menyaring WP_Query
objek yang berarti apa pun yang dapat Anda lakukan melalui query_posts()
Anda dapat lakukan melalui $query->set()
dan $query->get()
. Secara khusus kita dapat menggunakan meta_query
atribut (lihat Codex ):
$meta_query = array(
array(
'key'=>'featured',
'value'=>'yes',
'compare'=>'!=',
),
);
$query->set('meta_query',$meta_query);
Tapi .. ini menggantikan 'permintaan meta' yang asli (jika ada). Jadi, kecuali jika Anda ingin sepenuhnya mengganti permintaan meta asli, saya sarankan:
//Get original meta query
$meta_query = $query->get('meta_query');
//Add our meta query to the original meta queries
$meta_query[] = array(
'key'=>'featured',
'value'=>'yes',
'compare'=>'!=',
);
$query->set('meta_query',$meta_query);
Dengan cara ini kami menambahkan kueri meta kami di samping meta kueri yang ada.
Anda mungkin / mungkin tidak ingin mengatur relation
properti $meta_query
ke AND
atau OR
(untuk mengembalikan posting yang memenuhi semua, atau setidaknya satu, meta queri).
* Catatan: Jenis kueri ini akan mengembalikan tulisan dengan kunci meta 'unggulan', tetapi nilainya tidak yes
. Itu tidak akan mencakup posting di mana kunci meta 'unggulan' tidak ada. Anda dapat melakukannya dalam 3.5 .