按元值和日期对帖子进行排序

时间:2016-01-08 作者:Arjun S Kumar

我试图根据一个帖子的元值和日期对帖子进行排序。我正在使用这个插件(https://github.com/JonMasterson/WordPress-Post-Like-System ) 为我的帖子添加like系统。

我的代码如下。

$args = array(
    \'numberposts\' => 15,
    \'offset\' => 0,
    \'category\' => 0,
    \'meta_key\' => \'_post_like_count\',
    \'orderby\' => \'meta_value_num post_date\',
    \'order\' => \'DESC\',
    \'post_type\' => \'post\',
    \'suppress_filters\' => true 
);

$recent_posts = wp_get_recent_posts( $args );
插件添加了一个元键_post_like_count 如果至少有一个人喜欢这个职位,就把它放到桌子上。上面的代码只返回至少有一个like计数的帖子(比如15个帖子中有3个)。

我如何获取其余没有meta键的帖子,并根据日期对其进行排序?

1 个回复
SO网友:Milo

如果您希望这两篇文章都有和没有元键,那么您需要OR 关系元查询,用于选择带有关键字的帖子和不存在关键字的帖子。

$args = array(
    \'meta_query\' => array(
        \'relation\' => \'OR\',
        array(
            \'key\' => \'_post_like_count\',
            \'compare\' => \'EXISTS\'
        ),
        array(
            \'key\' => \'_post_like_count\',
            \'compare\' => \'NOT EXISTS\'
        )
    ),
    \'orderby\' => \'meta_value_num post_date\',
    \'order\' => \'DESC\'
);

$recent = new WP_Query( $args );

相关推荐

如何在wp-Query中比较不同的时间戳以获取事件自定义帖子类型?

我有一个带有自定义元数据库的自定义帖子类型(as seen on wptheming.com) 并且希望进行查询以显示即将发生的事件,例如在侧边栏中,过去的日期被忽略。但我需要一个当前时间的值来和事件开始时间进行比较。现在我从current_time(\'mysql\') 看起来是这样的:2012-02-16 13:15:31元的开始时间如下所示:201108121100如何使这两个日期具有可比性?我可以在查询中执行吗?或者是否有其他解决方案?以下是我到目前为止的查询(值留空,时间戳回显):<?ph