我正在做一个WP_Query
正在尝试按元数据筛选帖子。
$args = array(
\'ignore_sticky_posts\'=> 1,
\'post_type\' => \'post_projects\',
\'post_status\' => \'publish\',
\'posts_per_page\' => $nr_posts,
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => \'wpl_goal_amount\',
\'value\' => 100,
\'compare\' => \'!=\',
),
array(
\'key\' => \'wpl_location\',
\'value\' => \'Europe\',
\'compare\' => \'=\',
),
),
);
我正在用两篇帖子来测试这一点。其中一个在它的一系列位置中有“欧洲”,但每当我运行它时,它都不会想出任何东西。
问题更新:
我使用选项树来保存元数据,如前一个答案所述,它存储序列化后的元数据(Wordpress的默认设置),结合这一点和另一篇文章,我发现有两种方法可以查询序列化后的数据。第一种更方便,但更像是偷工减料,第二种更合适,但更困难:
越简单:
array(
\'key\' => \'wpl_location\',
\'value\' => \'"\' . $my_value . \'"\',
\'compare\' => \'LIKE\'
),
与更好但更难的方法相比:
array(
\'key\' => \'wpl_location\',
\'value\' => serialize(array(3 => \'Europe\')),
\'compare\' => \'LIKE\'
),
我相信第二种方法将要求我拥有一个(接近)与数据库相同的序列化数组,这对于我创建的系统来说是无法长期工作的,因为它需要匹配数组中多个项目中的一个。
我的最新问题:
我应该继续沿着这条路走下去并使用第一种方法,还是需要转储选项树并找出一种方法将元数据以未序列化的形式添加到帖子中,以便可以查询它?