12
Dec
<?php if ( 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~





高级货!用不到
Reply
bigCat:
@Louis Han, 如果要折腾主题,就可能遇到了
Reply
又是一个凌晨的沙发,黎明前的黑暗!
Reply
trylife:
@trylife, 杯具没看到前边的人
Reply
bigCat:
@trylife, - - 你们几个...不睡觉的啊
Reply
trylife:
@bigCat,
睡的晚 起的早
Reply
换用WP了,学习一下~~
Reply
bigCat:
@fatkun, 恩,多看codex,很多例子一看就懂
Reply
好像还可以这样:
is_home()&&!is_paged()
Reply
kangzj:
@kangzj, 这个是让判断分页;跟你说的是两回事,呵呵
Reply
bigCat:
@kangzj, 哈哈 偶还米用过分页捏
Reply
if ( is_home()这类型的语句是我唯一会的php
上次改主题的时候临时抱佛脚来的
Reply
bigCat:
@A.shun, 嘿,很常用的,也很好用
Reply
原来是这个问题,难怪老是没效果。
Reply
bigCat:
@chisdy, - - 刚好遇到有人问,就顺便分享一下
Reply
Reply
晕,以前都是query前先设个变量存起来的,现在方便鸟~
Reply
bigCat:
@sand, - - 主旋律默认是存着的,reset_query后就回到正规了,哈哈
Reply
学习中
Reply
query_posts();什么时候用到?我仿佛出现过,又记不得了!
Reply
bigCat:
@左岸读书, 哈,如其名,获取帖子的时候就用的到了
Reply
不错,我就是按照你这个把我现在用的主题解决好的,很完美的解决了...敢问有没有什么弊端的?
Reply
bigCat:
@网络砖家, 没啥弊端 - - 只是开始个query然后reset回去嘛
Reply
刚好需要,拿下,~
Reply
[...] 前段时间,想在侧边栏管理一下广告,让广告只在文章的页面显示,我不由自主的想到了<?php if ( is_home() ) { ?> <?php } ?>这对函数。赶忙拿来一用,结果无效。。。万戈兄写过的不同页面调用不同侧边栏我感觉有点复杂,由于学习鸭梨就搁浅没折腾了。前天无聊了从liveme童鞋那里“抄”了个订阅,由于我的我想让订阅和谷歌的那啥跟随着读者(侧边栏有效果)求点击的,但是小孙童鞋建议将订阅部分放到侧边栏顶部。我想了一下觉得这个建议不错,但是又想让大家在读文章的时候订阅一直“缠”着你,所以又想到了不同页面调用不同侧边栏,于是放狗搜了一下,没想到还真给我找到了解决问题的办法,而且还是我前几天刚刚看过的大猫的博客里。而且据了解大猫貌似就职于企鹅公司哦。 [...]
高级干货,用这个方法终于搞定了。
Reply
楼主 好人啊
Reply
Reply
[...] 参考对原文 » 转载请注明出处: 博客吧 » 本文地址:http://www.boke8.net/solve-wordpress-is_home-invalid.html [...]
[...] 参考对原文 [...]