大猫の意淫筆記
12
Dec

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

假装异步加载ing

订阅大猫的RSS feed,不错过一部AV~ 分享到QQ空间

» You can leave a comment, or trackback from your own site.

大战 30 回合 to “<?php if ( is_home() ) { ?>无效/失效的解决方案”

  1. Louis Han says:

    高级货!用不到 8O

    Reply

    bigCat:

    @Louis Han, 如果要折腾主题,就可能遇到了

    Reply

  2. trylife says:

    又是一个凌晨的沙发,黎明前的黑暗! :lol:

    Reply

    trylife:

    @trylife, 杯具没看到前边的人

    Reply

    bigCat:

    @trylife, - - 你们几个...不睡觉的啊

    Reply

    trylife:

    @bigCat,
    睡的晚 起的早 :(

    Reply

  3. fatkun says:

    换用WP了,学习一下~~ :lol:

    Reply

    bigCat:

    @fatkun, 恩,多看codex,很多例子一看就懂

    Reply

  4. kangzj says:

    好像还可以这样:
    is_home()&&!is_paged()

    Reply

    kangzj:

    @kangzj, 这个是让判断分页;跟你说的是两回事,呵呵

    Reply

    bigCat:

    @kangzj, 哈哈 偶还米用过分页捏

    Reply

  5. A.shun says:

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

    Reply

    bigCat:

    @A.shun, 嘿,很常用的,也很好用

    Reply

  6. chisdy says:

    原来是这个问题,难怪老是没效果。

    Reply

    bigCat:

    @chisdy, - - 刚好遇到有人问,就顺便分享一下

    Reply

  7. sand says:

    晕,以前都是query前先设个变量存起来的,现在方便鸟~

    Reply

    bigCat:

    @sand, - - 主旋律默认是存着的,reset_query后就回到正规了,哈哈

    Reply

  8. Mangotree says:

    学习中

    Reply

  9. 左岸读书 says:

    query_posts();什么时候用到?我仿佛出现过,又记不得了!

    Reply

    bigCat:

    @左岸读书, 哈,如其名,获取帖子的时候就用的到了

    Reply

  10. 网络砖家 says:

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

    Reply

    bigCat:

    @网络砖家, 没啥弊端 - - 只是开始个query然后reset回去嘛

    Reply

  11. 奚少 says:

    刚好需要,拿下,~

    Reply

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

  13. 三米 says:

    高级干货,用这个方法终于搞定了。

    Reply

  14. 真正的无产阶级 says:

    楼主 好人啊

    Reply

  15. 爱挖客 says:

    :( 亲人啊,找到答案了。

    Reply

  16. [...] 参考对原文  » 转载请注明出处: 博客吧 » 本文地址:http://www.boke8.net/solve-wordpress-is_home-invalid.html [...]

Leave a Reply

:!: :roll: :o :lol: :P :( 8O :x :oops: :) :?: :idea: :evil: ;) :twisted: XHTML<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>