WordPress 的 is_home()或 is_front_page()是判断是否为首页的函数方法,有时候我们在进行 WordPress 开发时出现] c w E + J b e不生效,或者明明不是首页的页面,is_home()却判断成了首页。那~ H % ~ % 2 \ 8么,究竟为何会出现这个奇怪的现象呢?
经模板Q H M H b 8 ~兔研究发现,原因可能出在 is_home()之前有个 query_posts(),然后又使用了 wp_reset_query()(在单独页面里使用Z S b ] A这个,会造成这个 bug)。 is_ho] J f o e L s ) _me() 函数在首页的时候会返回一个 true 来r t 1 8判断1 8 W 1 F x 2 S U,而 query_posts()会阻断这一判} C q , 3 d断: @ F s } G f U k。
解决方法是在 is_home()之前加一个 wp_reset_query()。例如:
- wp_reset_* ! T L D R m =query(); if ( is_homB Q 0 8 u p %e()S G l c l 8 & - f ) { ecx / % . | m :ho 'is( U 8 = 7 P w : mobantu homepage'; }