我有自定义的帖子类型名为university。当试图在管理页面中显示它(所有列出的位置)时,它显示总帖子25,第一页很好,当我点击第二页时,它显示来自第一页的一些相同的结果,而一些确实缺失。当我试图找到它们(右上角)时,它们会显示......有什么问题?在我的数据库中它看起来很好,试图关闭每个插件,但没有帮助。
我发现了一件有趣的事情....在我的数据库上显示查询时,此查询正在查询:
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts
WHERE 1=1
AND wp_posts.post_type = 'universities'
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'acf-disabled'
OR wp_posts.post_status = 'future'
OR wp_posts.post_status = 'draft'
OR wp_posts.post_status = 'pending'
OR wp_posts.post_status = 'private')
ORDER BY wp_posts.post_date DESC
LIMIT 20, 20
返回此ID:1194,1193,1192,1191,1190
这很糟糕(这个ID是第一页中的帖子的一部分,而不是第二页),因为当我像这样运行相同的查询时:
SELECT SQL_CALC_FOUND_ROWS wp_posts.*
FROM wp_posts
WHERE 1=1
AND wp_posts.post_type = 'universities'
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'acf-disabled'
OR wp_posts.post_status = 'future'
OR wp_posts.post_status = 'draft'
OR wp_posts.post_status = 'pending'
OR wp_posts.post_status = 'private')
ORDER BY wp_posts.post_date DESC
LIMIT 20, 20
在结果中还有另一个ID:1204,1205,1206,1207,1208
这就是我需要从第一篇文章中得到的...我可以检查什么来修复这个错误?我尝试了一切我想:/
答案 0 :(得分:0)
好的,我找到了解决方案,原因就是这样。问题是,我从wp导入了所有导入的帖子。没问题,但是它已经同时导入,并且大多数帖子的所有发布日期都相同。所以,当我的数据库调用请求时,所有帖子都有相同的时间,所以当有限制时,wp_posts.post_date命令会产生问题。这就是为什么在一个选择中返回不同的id对第二个选择的原因,以及为什么在我的管理页面中wordpress显示两个相同的帖子。
我通过将帖子的发布日期更改为特定范围内的随机数来解决这个问题,一切都很疯狂:)