Saya mencoba untuk menanyakan jenis posting khusus untuk sistem galeri. Saya memiliki kotak centang untuk mengatur galeri sebagai galeri "unggulan" (disiapkan melalui plugin More Fields) - jika ini dicentang maka nilai meta menjadi 1 dan kemudian jika tidak dicentang menjadi 0. Semua baik. Namun jika kotak belum pernah dicentang maka kunci meta tidak pernah dibuat, artinya saya tidak dapat meminta TIDAK SEPERTI 1 karena tidak ada.
Kueri yang saya inginkan adalah mengeluarkan 4 galeri yang tidak ditandai sebagai '1' dalam nilai meta ini, tetapi juga yang tidak memiliki nilai ini sama sekali. Apakah ada cara untuk selalu memberikan posting yang baru ditambahkan nilai default untuk kunci meta ini (yaitu selalu membuatnya 0 secara default jika kotak dibiarkan tidak dicentang) atau apakah ada cara untuk meminta kunci untuk kunci yang belum ditetapkan?
Permintaan saya saat ini adalah:
$args = array(
'post_type' => 'gallery',
'showposts' => 4,
'meta_key' => 'gal-ID',
'order_by' => 'meta_value',
'order' => 'ASC',
'meta_query' => array( array(
'key' => 'main-gal',
'value' => false,
) ),
) );
Dan saya sudah mencoba berbagai upaya dengan 'bandingkan' => 'TIDAK SUKA', '! =' Dll.
Ada ide? Tiket ini sepertinya menyiratkan sesuatu yang harus disortir:
http://core.trac.wordpress.org/ticket/18158
Terima kasih!
sumber
Sesuai Parameter Bidang Khusus dalam Codex,
NOT EXISTS
perbandingan khusus tersedia sejak WP versi 3.5Secara teknis ini menghasilkan sesuatu seperti mengikuti permintaan SQL dalam permintaan posting:
Ini bekerja dengan bergabung dengan tabel meta pada kunci yang disediakan dan hanya memilih catatan di mana itu tidak menghasilkan data yang bermakna (
IS NULL
). Jadi itu hanya berfungsi untuk kasus ketika kunci tidak ada sama sekali dan tidak akan bekerja untuk kunci yang ada dengan nilai-nilai palsu .sumber
NOT EXISTS
perbandingan ini . Sebagai solusi untuk kunci meta yang tidak disetel, saya hanya menyimpan 0 padasave_post
hook jika kunci meta tidak disetel. Bagaimana caraNOT EXISTS
kerjanya? Apakah ini akan mengurutkan permintaan OPmain-gal
dan kemudian mengisi 4 dengan posting yang tidak memiliki meta itu?Seperti yang ditunjukkan tiket, tiket tidak didukung .. sampai saat itu Anda harus mengandalkan solusi kustom.
Beberapa pengguna telah menanyakan hal ini sebelumnya, atau setidaknya bertanya bagaimana cara melakukannya di forum WordPress.org, jadi saya menulis fungsi untuk melakukan pekerjaan yang tidak pernah saya pegang (sudah lama berlalu), untungnya saya menemukan topik asli tempat saya memberikan tautan pastebin (yang seharusnya tidak kedaluwarsa).
http://pastebin.com/kgLt1RrG
Saya menulis itu 8 bulan yang lalu dan saya belum mengujinya (sejak itu), jadi beri tahu saya tentang masalah apa pun.
Semoga itu bisa membantu ..
sumber
Metode paling sederhana, meskipun bukan yang terbersih:
Ini akan memberi Anda semua galeri Anda diurutkan berdasarkan kunci meta. Langkah selanjutnya adalah mencari tahu apakah galeri dengan nilai 1 datang setelah atau sebelum posting lainnya. Dengan cara ini Anda dapat:
Metode lain yang tidak memerlukan pernyataan SQL khusus:
sumber