在过去的两周里,我一直在寻找一种方法,在wordpress中创建一个查询,返回所有自定义帖子类型,其中meta\\u键“mytype expired”未设置为“yes”,然后通过第二个meta\\u键“mytype sort order”对结果排序,第一个是最大的数值。如果“mytype sort order”meta\\u键字段中没有值,我希望这些帖子按日期顺序显示(最新添加的第一个),并且所有这些帖子都应该位于有值的帖子下方。
For example, these set of test posts:
Post 1 (从7月1日起,未设置mytype排序顺序值),Post 2 (从7月2日起,未设置mytype排序顺序值),Post 3 (从7月3日起,未设置mytype排序顺序值),Post 4 (从7月4日起,mytype排序顺序值=95),Post 5 (从7月5日起,mytype排序顺序值=90),Post 6 (从7月6日起,未设置mytype排序顺序值),Post 7 (7月7日起,到期=“是”)。
should be returned as follows:
- Post 4 (从7月4日起,mytype排序顺序值=95)Post 5 (从7月5日起,mytype排序顺序值=90)
- Post 6 (从7月6日起,未设置mytype排序顺序值)
- Post 3 (从7月3日起,未设置mytype排序顺序值)
- Post 2 (从7月2日起,未设置mytype排序顺序值)
- Post 1 (从7月1日起,未设置mytype排序顺序值)
(
Post 7 未显示,因为它已过期)
我在这里解释了我目前尝试使用元查询的方法here, 但我自己发现了任何新的东西或取得了任何进步,我的第一个问题没有得到回答,我想知道是否有其他方法可以实现这一点。我无法返回过期的帖子,也无法按“mytype sort order”meta\\u value\\u num或按日期排序。我一直遇到的问题是can\'t order by BOTH "mytype-sort-order" meta_value_num AND date 尽管我用wordpress做了很多工作,但我创建自定义查询的经验有限。我完全被困住了,希望能有一些想法。谢谢
SO网友:Tareq
类似于此代码段的内容将帮助您
$args = array(
\'post_type\' => \'product\',
\'orderby\' => \'meta_value\',
\'meta_key\' => \'mytype-sort-order\',
\'order\' => \'ASC\',
\'meta_query\' => array(
array(
\'key\' => \'mytype-expired\',
\'value\' => \'yes\',
\'compare\' => \'!=\'
)
)
);
$query = new WP_Query( $args );