我试图在我的网站上为每个类别添加一个“突出显示”部分。这将使用短代码定位在页面中。我将添加一个新的post元数据键,它将是一个从0到100的数字。每个“突出显示”部分将按得分降序列出该类别中得分高于50的帖子。
查看WordPress Codex,我看到get\\u posts接受“meta\\u key”和“meta\\u value”作为参数。然而,它们似乎是特定的值,而我想为“meta\\u键”添加一个“大于50”的条件。
如何获得那些“超过50”的帖子?
我试图在我的网站上为每个类别添加一个“突出显示”部分。这将使用短代码定位在页面中。我将添加一个新的post元数据键,它将是一个从0到100的数字。每个“突出显示”部分将按得分降序列出该类别中得分高于50的帖子。
查看WordPress Codex,我看到get\\u posts接受“meta\\u key”和“meta\\u value”作为参数。然而,它们似乎是特定的值,而我想为“meta\\u键”添加一个“大于50”的条件。
如何获得那些“超过50”的帖子?
这种元查询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
这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在