我为每个帖子创建了一个自定义字段,键为 "导演"。一个职位的值是 Joe Russo
,另一个员额 Joe Russo, Anthony Russo
...我正试图通过以下方式过滤所有帖子 Joe Russo
并想找到这两个帖子的标题,我想让它适用于任何名字,因为它们总是用逗号分开。我希望它能适用于任何名称,因为它们总是用逗号分开。我试过以下方法。
$args = array(
'meta_key' => 'director',
'meta_value' => 'Joe Russo',
'compare' => 'LIKE',
);
$meta_query = new WP_Meta_Query($args);
if($meta_query->have_posts()) {
$titles = array();
while($meta_query->have_posts()) {
$meta_query->the_post();
$titles[] = get_the_title();
}
return $titles;
} else {
return 'No posts found';
}
但这只能找到带有 Joe Russo
. 我还用REGEXP作为比较方法,但不能让它工作。任何想法都将是非常感激!
正如Johannes所指出的,我错误地使用了 compare
而不是 meta_compare
. 这很好用。
$args = array(
'meta_key' => 'director',
'meta_value' => 'Joe Russo',
'meta_compare' => 'LIKE',
);
不过我可能会用分类法来代替它,见Xhynk的评论。