我正在开发一个自定义分类术语页面模板,在该模板中,我们希望与该术语相关的项目按发布日期(自定义日期字段)进行排序-如果同一天有多个项目(格式如YYYY-MM- DD),然后按标题对它们进行排序,如果尚未填写自定义字段(旧项目),则最后按标题进行排序。
因此,我使用WP_query尝试了一百种不同的方式,它确实返回了我想要的大多数结果-但是在这种情况下,它仅返回具有publication_date的meta_key的项。所有其他项目都将被忽略并且不会显示。我使用“或”的关系尝试了meta_query,并将publication_date比较为EXISTS和NOT EXISTS,但是为我返回了0个结果。
此外,该站点仍在运行3.5.2,并且他们不想升级。
这是我最近的查询,使我获得具有按正确顺序显示的publication_date自定义字段的帖子:
$term = get_queried_object(); // find the term of the taxonomy page we are on
$wp_query = new WP_Query( array(
'post_type' => 'resource',
'tax_query' => array(
array(
'taxonomy' => 'resource_types',
'field' => 'slug',
'terms' => $term->name,
)),
'meta_key' => 'publication_date',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'paged' => $paged,
'posts_per_page' => '10',
));
我也尝试过使用wpdb并运行SQL查询,但是我真的不确定如何完成我想做的事情。如果有人可以帮助我,那就太好了!
提前致谢。
'meta_query' => array( 'relation' => 'OR', array( //check to see if date has been filled out 'key' => 'publication_date', 'compare' => '!=', 'value' => date('Y-m-d'), ), array( //if no date has been added show these posts too 'key' => 'publication_date', 'value' => date('Y-m-d'), 'compare' => 'NOT EXISTS' ) ),
但排序不起作用:\