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 日期排序的主要内容,如果未能解决你的问题,请参考以下文章

PHP 查询按类别获取帖子 - Wordpress

PHP WordPress按ID查询分类

WordPress 查询:按年份 DESC 对帖子进行分组,然后在每个组中按月 ASC 发布帖子

按ID的WordPress查询分类法

按类别查询获取帖子-Wordpress

php 按对象属性对对象数组进行排序。示例:查询后对Wordpress帖子进行排序