我刚刚意识到,在我之前的回答中,我重点复制了您当前的SQL查询,但您的查询并不是问题文本所说的内容。
一个条件似乎是当前用户必须是原始作者。
如果版本历史记录存在,那么我们需要找出每个版本的父帖子作者。
我认为您应该考虑将这些信息存储在用户元表中,而不是走这条路。
存在_last_edit
post meta键确定最后修改每个帖子的人。例如,用于get_the_modified_author()
作用
因此,我的建议是储存类似的_wpse_last_modified_cpt
每次更新cpt时,以unix修改时间为值的用户元键。
然后,您可以为当前用户获取它,并检查存储的日期时间是否在所需的限制内。
我希望我正确理解了这个问题;-)
Previous Answer:
听起来您正在寻找此类查询:
$query = new WP_Query(
[
\'post_type\' => \'cpt\', // Adjust to your needs!
\'fields\' => \'ids\',
\'author\' => get_current_user_id(),
\'post_status\' => \'publish\',
\'date_query\' => [
[
\'after\' => \'7 days ago midnight\', // Adjust to your needs!
\'inclusive\' => true,
\'column\' => \'post_modified\'
]
]
]
);
这就产生了
WHERE
SQL的一部分:
WHERE 1=1
AND ( wp_posts.post_modified >= \'2016-09-09 00:00:00\' )
AND wp_posts.post_author IN (123)
AND wp_posts.post_type = \'cpt\'
AND wp_posts.post_status = \'publish\'
然后应添加
is_user_logged_in()
运行查询前进行检查。
然后,您可以使用这种支票:
if( $query->have_posts() )
{
// Do what you need to do!
}
查看当前用户编写的自定义帖子是否在上一个
n
天。