例如,我在WP中发布了以下帖子:
Name ID Date
JohnA 6 01012020
JohnB 7 01022020
KateA 7 05052021
SamA 4 01022020
SamA 4 01022022
我如何可以按日期排序,但也可以将ID为的帖子放在每个登录用户之前(也按日期排序)?换句话说,如何使用条件逻辑进行排序,使用变量,例如其中的当前用户ID,以便每个用户在看到其他用户的帖子之前先看到自己的帖子。例如,我在WP中发布了以下帖子:
Name ID Date
JohnA 6 01012020
JohnB 7 01022020
KateA 7 05052021
SamA 4 01022020
SamA 4 01022022
我如何可以按日期排序,但也可以将ID为的帖子放在每个登录用户之前(也按日期排序)?换句话说,如何使用条件逻辑进行排序,使用变量,例如其中的当前用户ID,以便每个用户在看到其他用户的帖子之前先看到自己的帖子。根据我对您问题的理解,解决方案是使用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) 到您的查询。
您可以将条件放入select中,然后将其用于排序。
SELECT ID, post_author = 6 as featured_author
FROM wp_posts
ORDER BY featured_author DESC, post_created DESC
这项工作:$values = array(); foreach ( $_POST as $key => $value ) { $values[] = $wpdb->prepare( "(%d,%s,%s)", $post_id, $key, $value ); } $query = "INSERT INTO {$table} (post_id, meta_key, meta_value) VALUES