使用WP查询的变量条件排序

时间:2021-11-20 作者:Horhe Garcia

例如,我在WP中发布了以下帖子:

Name   ID  Date 
JohnA  6  01012020
JohnB  7  01022020
KateA  7  05052021
SamA   4  01022020
SamA   4  01022022
我如何可以按日期排序,但也可以将ID为的帖子放在每个登录用户之前(也按日期排序)?换句话说,如何使用条件逻辑进行排序,使用变量,例如其中的当前用户ID,以便每个用户在看到其他用户的帖子之前先看到自己的帖子。

2 个回复
SO网友:FS-GSW

根据我对您问题的理解,解决方案是使用SQL运算符;“联合”;,如以下示例所示。

SELECT res.id, res.name, res.date, res.rowOrder
FROM (
    SELECT id, name, date, 1 as rowOrder 
        FROM users u
        WHERE u.name = \'JohnD\'
    UNION
        SELECT id, name, date, 2 as rowOrder 
        FROM users u
        WHERE u.name != \'JohnD\'
) res
ORDER BY res.rowOrder, res.date;
您可以在以下位置查看我的测试:https://sqltest.net/#1547933

我让您添加Wordpress包装器(WP_Query) 到您的查询。

编辑您可以轻松添加分页,如中所示this issue

SO网友:Olivier

您可以将条件放入select中,然后将其用于排序。

SELECT ID, post_author = 6 as featured_author
FROM wp_posts
ORDER BY featured_author DESC, post_created DESC