元查询的序列化值不起作用

时间:2019-08-29 04:52:57

标签: wordpress

我有两个带有每个复选框的metabox。在下面的代码中,它分别命名为test2test3。我已经将两个值保存在单个后置元键中。经检查,我发现它保存为以下内容。

a:4:{s:5:"test1";s:0:"";s:5:"test2";b:1;s:5:"test3";b:1;}

我希望在元查询中使用test3值。我有以下查询,

$args = array (
    'post_type'         => 'my_custom_cpt',
    'meta_query'        => array (
        array (
            'key'       => 'test3',
            'value'     => 1,
            'compare' => 'LIKE',
        )
    ),
);
$loop = new WP_Query( $args );

我将帖子meta保存在键my_test_pm中。我尝试将其作为meta query键的键。仍然没有任何帖子返回。

2 个答案:

答案 0 :(得分:1)

您尝试过这样吗?

$args = array(
    'post_type' => 'my_custom_cpt',
    'meta_query' => array(
        array(
            'key' => 'test3',
            'value' => sprintf(':"%s";', 1),
            'compare' => 'LIKE'
        )
    )
);

$loop = new WP_Query( $args );

或使用自定义查询

global $wpdb; 

$query = $wpdb->prepare("SELECT `post_id` FROM `wp_postmeta` WHERE `post_id` IN (SELECT `ID` FROM `wp_posts` WHERE `post_type` = 'my_custom_cpt')
AND `meta_key` = 'test3' AND `meta_value` LIKE '%s'",'%1%');

$ids = $wpdb->get_col($query);

$args = array(
    'post__in' => $ids,
    'post_type' => 'my_custom_cpt' 
);

$posts = get_posts($args);


print_r($posts);

答案 1 :(得分:-2)

$ args = array('post_type'=>'my_custom_cpt','meta_query'=> array(          数组(             'key'=>'my_test_pm',             '值'=>数组('test3'),             '比较'=>'喜欢',          ),         ),      );     $ query =新的WP_Query($ args); 你这样尝试过吗?