如何获取元数据数字键大于X的帖子?

时间:2016-01-24 作者:Axonn

我试图在我的网站上为每个类别添加一个“突出显示”部分。这将使用短代码定位在页面中。我将添加一个新的post元数据键,它将是一个从0到100的数字。每个“突出显示”部分将按得分降序列出该类别中得分高于50的帖子。

查看WordPress Codex,我看到get\\u posts接受“meta\\u key”和“meta\\u value”作为参数。然而,它们似乎是特定的值,而我想为“meta\\u键”添加一个“大于50”的条件。

如何获得那些“超过50”的帖子?

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

这种元查询WP_Query()get_posts():

\'meta_query\' => [
    [
        \'key\'     => \'score\',
        \'value\'   => 50,
        \'type\'    => \'numeric\',
        \'compare\' => \'>=\',
    ],
],
将生成以下SQLWHERE 零件:

wp_postmeta.meta_key = \'score\' AND CAST(wp_postmeta.meta_value AS SIGNED) >= \'50\' 
这种排序:

\'orderby\'  => [ 
    \'meta_value_num\' => \'DESC\', 
    \'title\'          => \'ASC\' 
],
将生成:

ORDER BY wp_postmeta.meta_value+0 DESC, wp_posts.post_title ASC 
如果我们使用语法defined here, 元查询数组索引为score_clause, 然后

\'orderby\'  => [ 
    \'score_clause\'  => \'DESC\', 
    \'title\'         => \'ASC\' 
],
将生成:

ORDER BY CAST(wp_postmeta.meta_value AS SIGNED) DESC, wp_posts.post_title ASC 

相关推荐

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

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