导读:WordPress 加 is_home() 判断是否为首页, 结果不生效, 可能的原因是 is_home() 之前有个 query_posts() 造成的,is_home() 函数在首页的时候会返回...
WordPress 加 is_home() 判断是否为首页, 结果不生效, 可能的原因是 is_home() 之前有个 query_posts() 造成的,is_home() 函数在首页的时候会返回一个 true 来判断, 而 query_posts() 会阻断这一判断, 代码如下:
- <?php if ( is_home() ) { ?>
- 我只会在首页显示
- <?php } ?>
is_home(); 函数在首页的时候会返回一个 true, 上面那段代码是常用的只在首页显示, 插入任何模板页 PHP 里都可以, 例如侧边栏 sidebar.php 或页脚 footer.php, 但如果它之前有个 query_posts(); 则会让它失效, 原因是 is_home is_virgin is_ooxx 这种 is_ 前缀的都是基于主旋律循环来判断, 而 query_posts(); 会让其偏离主循环, 解决方案是在 is_home(); 之前加一个 wp_reset_query(); 代码如下:
- <?php wp_reset_query(); if ( is_home() ) { ?>
- 我只会在首页显示, 真的!
- <?php } ?>
第二种, 当你使用指定的一个 page 页面作为首页时, 这种情况下 is_home() 是不起作用, 可以使用 is_front_page() 来判断当前页是不是指定的首页, 我们在上面所描述的情况下需要的就是这个函数, 代码如下:
- <?php if (is_home() || is_front_page()) { ?>
- 首页显示代码……………………
- <?php } ?>