自相矛盾的wordpress文章置顶

此问题是在网友测试xTaoke主题的时候发现的,说起来很坑爹。

xTaoke对每页的文章数量要求比较严格,比如一行显示4篇文章,那每一页的总 文章数量就应该是4的倍数。相信很多主题都有类似的要求,不然不好看。

假设我们设置每页显示16篇文章。

当你置顶某篇文章后,如果这篇文章的本来顺序是大于16的,奇怪的事情出现了。

此时首页就会显示17篇文章。置顶2篇,就是显示18篇了,然后才会分页。

而第2页是正常的,显示16篇文章。

但是,如果你置顶的那篇文章序号在16以内,则不会破坏首页显示数量。

如果你为了照顾第1页,而把每页显示设为“16-置顶文章数”这么多篇时,比如你置顶1篇,则设置每页显示15篇,这样总数就是16了。首页暂时是正常了,但第2页就会显示你设置的篇数。而且,如果你增加了置顶文章,就又得更改每页显示数量,很麻烦很不现实。

我想知道这是为什么?

为什么置顶文章不能把后面的文章的顺序挤到下一页呢?

我到论坛问问去,如果能解决,则记录在这里。

初步测试及露兜兄的指点下,发现这个问题无解,或者说解决起来成本太高。

露兜说可以通过代码单独设置首页的显示数量为“每页规定显示数量-置顶文章数量”,本来这样的确可以解决问题,但有个蛋疼的bug就是上面说的,如果置顶文章的序号是小于你每页显示数目时,首页不会多出一个的;但这个代码并不能判断置顶文章的序号到底是大于16还是小于,它只管减去了。

所以,如果你置顶了3篇文章,那上面的代码会自动把首页显示数量设为16-3=13,但不巧有1篇文章序号本来是小于16的,此时你的首页应该显示16-(3-1)=14,而不是13.结果还是错位了。

这基本上可以说是wordpress自身设计的问题,蛋疼。

8 评论

发表评论

电子邮件地址不会被公开。