Cara kueri untuk nilai kunci meta mutiple dengan kunci yang sama
$querystr = "
SELECT $wpdb->posts.*
FROM $wpdb->posts, $wpdb->postmeta
WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id
AND $wpdb->postmeta.meta_key = 'key1'
AND $wpdb->postmeta.meta_value = 'value1'
// why doesn't this work?
AND $wpdb->postmeta.meta_value = 'value2'
AND $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_type = 'post'
ORDER BY $wpdb->posts.post_date DESC
";
kode selanjutnya
<?php
$args = array(
'meta_query' => array(
array(
'key' => 'key1',
'value' => 'value1',
'compare' => '='
),
// this array results in no return for both arrays
array(
'key' => 'key1',
'value' => 'value2',
'compare' => '='
)
)
);
$the_query = new WP_Query( $args );
?>
<?php /* Start the Loop */ ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>
Saya memiliki masalah yang sama ketika melewati beberapa array untuk kunci yang sama tidak berfungsi. Sebagai gantinya, cukup gunakan satu larik, atur 'nilai' ke larik nilai, dan atur 'bandingkan' ke IN:
sumber
Anda harus alias tabel postmeta untuk nilai kedua:
Anda juga dapat melakukan ini sekarang sejak 3.1 dengan
meta_query
:sumber
print_r( $the_query );
segera setelah permintaan?Kuncinya adalah key1 dan nilai 'value1' dan 'value2' mencobanya baik teks dan numerik dalam instalasi baru dengan dua puluh sebelas. print_r ($ the_query); output bekerja terlihat normal. Juga mencoba key1 dan key2 juga tidak berhasil. Ini berfungsi segera setelah saya batasi untuk satu array. Diperiksa dengan berbagai browser.
Namun ini berhasil.
sumber