<?php if ( is_home() ) { ?>无效/失效的解决方案

wordpress_is_home

<?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 } ?>

发布者:bigCat

在XX季节不会乱飚尿,不会对同性及异性无情殴打,不会撕咬哭喊强烈要求夜间出门寻欢,无视异性哀号勾引,温柔敦厚寡言少语质保刚建文武两道的和谐社会型青壮年家养公猫

加入对话

35条评论

  1. 请问之后有没有取消wp_reset_query();这个函数的函数,我的是情侣主题,之前用 query_posts();判断作者了,在样式文件中加入wp_reset_query();后会干扰男女双方的文章正确获取。

  2. 刚接触WordPress,我在主题中的function.php 用is_home()会抛一个异常。包括is_front_page(),我在index.php中使用却是正常的….请问下是为什么?

留下评论

网络砖家进行回复 取消回复

电子邮件地址不会被公开。