键的值或键的存在的Query_Posts()

时间:2011-01-07 作者:Sampson

我最近开始在一个项目中使用简单字段来区分不同类型的帖子。从现在起,所有帖子都会有四个可能的元值(故事、文章、视频或卡通)中的一个。这些类型的帖子都没有唯一的属性或值,所以我决定这次不使用自定义帖子类型。

我知道如何查询具有特定元值的帖子,但这只适用于已经具有与之关联的元键的帖子,而不适用于在安装简单字段插件并投入使用之前创建的帖子。我很好奇如何查询所有没有元键“fizzbuzz”或有键但与“foobar”值关联的帖子。

有没有办法查询所有没有密钥的帖子?

1 个回复
SO网友:JakeParis

这将为您提供所有没有元键fizzbizz的东西。自定义循环部分,我取消了directly from the codex.

$pageposts = $wpdb->get_results("
    SELECT * FROM wp_posts p 
    LEFT JOIN wp_postmeta m 
    ON p.ID = m.post_id 
    WHERE m.meta_key <> \'fizzbizz\'
    OR m.metakey IS NULL
    ORDER BY p.post_date DESC;
");

if ($pageposts):
    global $post;
    foreach ($pageposts as $post): 
    setup_postdata($post);
// now you are in the loop, use the_title() or whatever
这将在有键的地方获取所有内容,但值为“foobar”

$pageposts = $wpdb->get_results("
    SELECT * FROM wp_posts p 
    JOIN wp_postmeta m 
    ON p.ID = m.post_id 
    WHERE m.meta_key = \'fizzbizz\' 
    AND m.meta_value = \'foobar\' 
    ORDER BY p.post_date DESC;
");
最后一个很棘手,我不太确定。。。

编辑

修复了第一个查询,因为this question.

结束

相关推荐