WP_Query按meta_key值搜索

时间:2017-06-26 07:13:51

标签: php wordpress woocommerce

我有一个元字段" a" a1,a2,a11乘法值等等。

get_post_meta(id,' a');显示:数组数组([0] => a1 [1] => a6)

我按此代码搜索

array(
'key' => 'a',
'value' => 'a1',
'compare' => 'LIKE'
),

但是有一个问题,LIKE没有确切的搜索和巧合。在a1值记录中还显示字段a11。如何才能纠正搜索恰好是a1到值?

'value' => 'a1',
'compare' => '='

'value' => array('a1'),
'compare' => 'IN'

不能工作。什么都没有显示

2 个答案:

答案 0 :(得分:0)

通过get_results使用自定义查询。

$querystr = "
    SELECT $wpdb->posts.* 
    FROM $wpdb->posts, $wpdb->postmeta
    WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id 
    AND $wpdb->postmeta.meta_key = 'a' 
    AND $wpdb->postmeta.meta_value = 'a1' 
    AND $wpdb->posts.post_status = 'publish' 
    AND $wpdb->posts.post_type = 'post'
    AND $wpdb->posts.post_date < NOW()
    ORDER BY $wpdb->posts.post_date DESC
 ";
 $pageposts = $wpdb->get_results($querystr, OBJECT);

https://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query

答案 1 :(得分:0)

我觉得这段代码令人担忧。

 $args = array(
        'post_type'  => 'my_custom_post_type',
        'meta_key'   => 'age',
        'meta_query' => array(
            array(
                'key'     => 'age',
                'value'   => array( 3, 4 ),
                'compare' => 'IN',
            ),
        ),
    );
    $query = new WP_Query( $args );

祝你好运