我有一个自定义的Wordpress查询,如下所示:
$args = array(
'post_type' => 'publication',
'post_status' => 'publish',
'category_name' => 'my-category',
'posts_per_page' => 20,
'orderby' => 'publication_year',
'order' => 'DESC',
'paged' => $paged
);
$loop1 = new WP_Query($args);
我正在查询自定义帖子类型,只需要具有特定类别的帖子。 FWIW,我使用PODS创建了帖子类型。该查询可以通过一个小例子-order
子句正常工作:
orderby
字段是指名为“ publication_year”的date
字段,该字段仅显示年份值2015、2014、2013等,但数据库中包含完整的日期,例如“ 2013-01- 18英寸或类似尺寸。
现在,我在上述查询中获得的顺序是2013、2014、2015-尽管order
是DESC
,但我希望与此相反。如果将其更改为ASC
,我将得到2015、2014、2013!
我不明白-我希望升序为2013、2014、2015等。我在哪里错了?
答案 0 :(得分:1)
publication_year
不是wp_posts
表中的列。请参见WordPress Database Description。如果orderby
参数无效,则WordPress将退回到默认排序方式,即post_date
列。
如果它是一个元值,则应使用:
$args = array(
'post_type' => 'publication',
'post_status' => 'publish',
'category_name' => 'my-category',
'posts_per_page' => 20,
'orderby' => 'meta_value_num',
'meta_key' => 'publication_year',
'order' => 'DESC',
'paged' => $paged
);
有关更多信息,请参见WordPress codex。