标签归档:文章

使用wp_reset_query()重置query

琢磨着为单篇文章添加上随机文章之类,因为已经写好了一个随机文章的函数,所以,直接在 single.php 中调用即可。

可是,页面卡住了,CPU 100了。换了个浏览器,依然如此。将新添加的语句注释掉,正常。函数的问题?可是,404 页面工作正常啊!将语句替换为简单的 echo 语句,一切正常。

再次调用函数,刷新,等待加载。N久之后,终于开始刷新出来了。可是,为什么是无数的文章而不是原本的单篇文章的呢?赶紧停止加载,去看代码。

仔细查看代码,终于发现了问题。我写的随机文章函数使用的是 wp_query() 方法,然后,里面是一个 loop,而添加的单篇文章的时候又位于其 loop 里面。而 $post 之类都是全局变量,这样,随机文章函数就重写了一系列的全局变量,从而导致了悲剧。
继续阅读