大猫 (Madao) - まるでダメなおっさん

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

by bigCat 34 Comments

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

Comments ( 34 )

  1. ReplyLouis Han
    高级货!用不到 8O
  2. Replytrylife
    又是一个凌晨的沙发,黎明前的黑暗! :lol:
  3. Replyfatkun
    换用WP了,学习一下~~ :lol:
  4. Replykangzj
    好像还可以这样: is_home()&&!is_paged()
  5. ReplyA.shun
    if ( is_home()这类型的语句是我唯一会的php :P 上次改主题的时候临时抱佛脚来的 ;)
  6. Replychisdy
    原来是这个问题,难怪老是没效果。
  7. Reply匿名
    :x
  8. Replysand
    晕,以前都是query前先设个变量存起来的,现在方便鸟~
    • ReplybigCat
      @sand, - - 主旋律默认是存着的,reset_query后就回到正规了,哈哈
  9. ReplyMangotree
    学习中
  10. Reply左岸读书
    query_posts();什么时候用到?我仿佛出现过,又记不得了!
  11. Reply网络砖家
    不错,我就是按照你这个把我现在用的主题解决好的,很完美的解决了...敢问有没有什么弊端的?
  12. Reply奚少
    刚好需要,拿下,~
  13. if(is_home()等无效/失效的解决办法 - 奚少收藏小窝
    [...] 前段时间,想在侧边栏管理一下广告,让广告只在文章的页面显示,我不由自主的想到了<?php if ( is_home() ) { ?> <?php } ?>这对函数。赶忙拿来一用,结果无效。。。万戈兄写过的不同页面调用不同侧边栏我感觉有点复杂,由于学习鸭梨就搁浅没折腾了。前天无聊了从liveme童鞋那里“抄”了个订阅,由于我的我想让订阅和谷歌的那啥跟随着读者(侧边栏有效果)求点击的,但是小孙童鞋建议将订阅部分放到侧边栏顶部。我想了一下觉得这个建议不错,但是又想让大家在读文章的时候订阅一直“缠”着你,所以又想到了不同页面调用不同侧边栏,于是放狗搜了一下,没想到还真给我找到了解决问题的办法,而且还是我前几天刚刚看过的大猫的博客里。而且据了解大猫貌似就职于企鹅公司哦。 [...]
  14. Reply三米
    高级干货,用这个方法终于搞定了。
  15. Reply真正的无产阶级
    楼主 好人啊
  16. Reply爱挖客
    :( 亲人啊,找到答案了。
  17. 解决 wordpress if (is_home())无效/失效的方法 | 博客吧
    [...] 参考对原文  » 转载请注明出处: 博客吧 » 本文地址:http://www.boke8.net/solve-wordpress-is_home-invalid.html [...]
  18. Reply青衿
    请问之后有没有取消wp_reset_query();这个函数的函数,我的是情侣主题,之前用 query_posts();判断作者了,在样式文件中加入wp_reset_query();后会干扰男女双方的文章正确获取。
  19. is_home() 失效后的另一个解决方法
    [...] 来自:ooxx.me 标签: is_home() php WordPress [...]
  20. ReplyReuel
    优秀,刚好到位。
  21. Replypeascloud
    谢谢,友链有救了

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>