Wordpress 查询 - 按 meta_value_num AND 日期排序
Posted
技术标签:
【中文标题】Wordpress 查询 - 按 meta_value_num AND 日期排序【英文标题】:Wordpress Query - Order by meta_value_num AND date 【发布时间】:2014-04-08 08:10:37 【问题描述】:目前我的 wp_query 中的订单有点卡住了。
我想首先按 meta_value_num 对查询进行排序(这很完美)并作为日期的后备。但在我的查询中,与 meta_value_num 相比,日期似乎占主导地位。
所以它按日期对我所有的帖子进行排序,然后应用 meta_num_value 顺序,反之亦然。
你知道怎么做吗?
$args = array(
'post_type' => 'anbieter',
'showposts' => -1,
'order' => 'DESC',
'orderby' => 'meta_value_num date',
'meta_key' => 'rating'
);
我发现这么多线程要按两个自定义字段排序,但不能按“普通帖子字段”和自定义字段排序。
问候,
【问题讨论】:
【参考方案1】:我不久前找到了一个解决方案,就是这样。将此添加到您的functions.php:
function wdw_query_orderby_postmeta_date( $orderby )
$new_orderby = str_replace( "wp_postmeta.meta_value", "STR_TO_DATE(wp_postmeta.meta_value, '%d-%m-%Y')", $orderby );
return $new_orderby;
然后对您的查询执行此操作:
add_filter( 'posts_orderby', 'wdw_query_orderby_postmeta_date', 10, 1);
$args = array(
'post_type' => 'anbieter',
'showposts' => -1,
'order' => 'DESC',
'orderby' => 'meta_value',
'meta_key' => 'rating'
);
remove_filter( 'posts_orderby', 'wdw_query_orderby_postmeta_date', 10, 1);
【讨论】:
以上是关于Wordpress 查询 - 按 meta_value_num AND 日期排序的主要内容,如果未能解决你的问题,请参考以下文章