昨天发现SimplePageNavi的页码计算有误,我原本不到130篇日志,页码却显示到16。
查看SimplePageNavi源文件发现以下代码:
$postsnum = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts where post_status='draft'");
问题就在这里,查看WP的表结构发现这条查询条件有误。仅仅过滤掉了草稿,但是数据表中还存在post_status=inherit的数据项。所以将原代码做如下修改即可解决问题:
$postsnum = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts where post_type='post' and post_status='publish'");
(7月31日更新)
除了日志数量读取bug外,还确实在页码计算上存在一个bug。问题代码:
$pagenum=intval($postsnum/get_option('posts_per_page'));
解决办法:
$pagenum=ceil($postsnum/get_option('posts_per_page'));