如何检查特定帖子的帖子元键/值对是否已经存在

时间:2021-04-12 作者:Álvaro Franz

我想知道对于给定的帖子ID$post_id, 存储的元数据键和值对与给定键匹配$meta_key 和价值$meta_value 一对

我是not 寻找任何符合条件的帖子,可以通过以下方式轻松实现:

get_posts(array(
    \'meta_key\' => $meta_key,
    \'meta_value\' => $meta_value
));
相反,对于给定的$post_id.

可能有很多不同的方法:

例如,使用get_posts():

get_posts(array(
    \'post__in\' => array($post_id),
    \'meta_key\' => $meta_key,
    \'meta_value\' => $meta_value
));
looping through all the post meta 并检查它们。

$results = get_post_meta($post_id, $meta_key, false);
$found = false;
foreach($results as $result){
   if($result == $meta_value){
   $found = true;
   break;
   }
}
但我想知道在WordPress中是否有任何内置的方法可以做到这一点。如果没有,最有效的方法是什么。

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

根据get_post_meta(), 你可以试试

注意:如果您选择第一个选项,you could use the object operator -> 从帖子中获取元值,避免调用get_post_meta() 你自己在Trac上查看here.

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在