wordpress函数is_home()、is_singular()等无效的解决方案

wordpress开发中,页面类型及位置等的判断很常用,不同的页面调用不同的数据。

比如 is_home() 判断是否为首页,is_singular() 判断是否为文章页或页面……

简单的使用方法:

<?php if( is_singular() ){
	……
}else{
	……
} ?>

此类函数偶尔也会出现无效的情况,翻阅 wordpress 函数详解,发现此类函数不能在 loop 循环中使用,也就是说此类函数前如有 query_posts(); 则会导致判断无效。

解决办法:

在 is_home(); 前加一个 wp_reset_query(); 如下:

<?php wp_reset_query(); if ( is_home() ) { ?>
	……
} ?>

类似的函数都是如此:is_page() is_category() 等,都需要注意一下。