WordPress 的 is_home()或 is_front_page()是判断是否为首页的函数方法,有时候我们在进行 WordPress 开发时出现不生效,或者明明不是首页的页面,is_home()却判断成了首页。那么,究竟为何会出现这个奇怪的现象呢?
经研究发现,原因可能出在 is_home()之前有个 query_posts(),然后又使用了 wp_reset_query()(在单独页面里使用这个,会造成这个 bug)。 is_home() 函数在首页的时候会返回一个 true 来判断,而 query_posts()会阻断这一判断。
解决方法是在 is_home()之前加一个 wp_reset_query()。例如:
wp_reset_query(); if ( is_home() ) { echo 'is mobantu homepage'; }