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


《 “<?php if ( is_home() ) { ?>无效/失效的解决方案” 》 有 36 条评论

  1. if ( is_home()这类型的语句是我唯一会的php 😛
    上次改主题的时候临时抱佛脚来的 😉

  2. 不错,我就是按照你这个把我现在用的主题解决好的,很完美的解决了…敢问有没有什么弊端的?

  3. […] 前段时间,想在侧边栏管理一下广告,让广告只在文章的页面显示,我不由自主的想到了<?php if ( is_home() ) { ?> <?php } ?>这对函数。赶忙拿来一用,结果无效。。。万戈兄写过的不同页面调用不同侧边栏我感觉有点复杂,由于学习鸭梨就搁浅没折腾了。前天无聊了从liveme童鞋那里“抄”了个订阅,由于我的我想让订阅和谷歌的那啥跟随着读者(侧边栏有效果)求点击的,但是小孙童鞋建议将订阅部分放到侧边栏顶部。我想了一下觉得这个建议不错,但是又想让大家在读文章的时候订阅一直“缠”着你,所以又想到了不同页面调用不同侧边栏,于是放狗搜了一下,没想到还真给我找到了解决问题的办法,而且还是我前几天刚刚看过的大猫的博客里。而且据了解大猫貌似就职于企鹅公司哦。 […]

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

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

回复 bigCat 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注