如何获取POST元,其中VALUE是键值对的数组

时间:2018-04-10 作者:Nick Taylor

我正在尝试使用元查询获取post-meta,其中value是一个键值对数组。

 $user_id = \'123\';

  $arr = array();

  $arr[\'a\'] => "somevalaaa" ;
  $arr[\'user_id\'] => $user_id ;
  $arr[\'c\'] => "somevalyyy" ;
添加post meta

  add_post_meta($review_post_id, \'key_of_post_meta\', $arr );
使用元查询获取post meta(用户id与$user\\u id相同),我错在哪里?

  $args = array(
     \'post_type\' => \'as_reviews\',
     \'posts_per_page\' => -1,
     \'post_status\' => \'publish\',
          \'meta_query\' => array(
              array(
                \'key\' => \'key_of_post_meta\',
                \'value\' => array(\'user_id\'=>$user_id),
                \'compare\' => \'IN\',
               ),
            ),
       );



  $query = new WP_Query($args);

1 个回复
最合适的回答,由SO网友:Aurovrata 整理而成

这个meta_query 无法用于搜索存储为序列化数组的值。您可以使用它来搜索多个值(元字段可以several values using the same key).

你需要一种不同的方法来解决你的问题,这就是我的建议,

将元字段和用户id存储为密钥名称的一部分,

add_post_meta($review_post_id, \'key_of_post_meta_\'.$user_id, $arr );
接下来,检索您的帖子,

$args = array(
     \'post_type\' => \'as_reviews\',
     \'posts_per_page\' => -1,
     \'post_status\' => \'publish\',
     \'meta_key\' => \'key_of_post_meta_\'.$user_id
    );
  $query = new WP_Query($args);

结束

相关推荐