这几天一直在晚上抽空给站点主题改版,即将完成之后发现某些问题,如侧边栏某些widget不按照需求显示、评论无法ajax提交等,在查找中发现,原来是因为if(is_home())等判断函数失效,由于这次主题定制的东西比较多,多次用到query_posts(),所以导致该判断失效。
解决方案
在 if ( is_home()之前加一个 wp_reset_query(),如下:
<?php wp_reset_query(); if ( is_home()) { ?> ... <?php } ?>
如此一般便可以解决该问题了。做个备忘。
常用函数
以下是主题制作中常用到的几个判断页面的函数:
is_home() : 是否为主页 is_single() : 是否为内容页(Post) is_page() : 是否为内容页(Page) is_category() : 是否为Category/Archive页 is_tag() : 是否为Tag存档页 is_date() : 是否为指定日期存档页 is_year() : 是否为指定年份存档页 is_month() : 是否为指定月份存档页 is_day() : 是否为指定日存档页 is_time() : 是否为指定时间存档页 is_archive() : 是否为存档页 is_search() : 是否为搜索结果页 is_404() : 是否为 “HTTP 404: Not Found”错误页 is_paged() : 主页/Category/Archive页是否以多页显示 is_singular() : 相当于is_single()||is_page()||is_attachment()
完。
一般不是调用完query_posts(),随手调用一次wp_reset_query()么?
@不给力的面条 结束时忘了调用了。。。。

之前我从网上抄来的含循环查询什么的代码,很少有带reset的,看来也不是太受重视。
@有点蓝 这个还是很重要的,我之前也不注意,只是写,直到碰到问题才发觉。
你的logo设计的不错,呵呵。赞一个
@郑永 字体变形了就是。。
这个之前也碰到过,确实是需要reset
我之前也遇到这个问题,也是加wp_reset_query()解决的。