<?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 } ?>
36 评论
添加您的 →高级货!用不到
@Louis Han, 如果要折腾主题,就可能遇到了
又是一个凌晨的沙发,黎明前的黑暗!
@trylife, 杯具没看到前边的人
@trylife, – – 你们几个…不睡觉的啊
@bigCat,
睡的晚 起的早
换用WP了,学习一下~~
@fatkun, 恩,多看codex,很多例子一看就懂
好像还可以这样:
is_home()&&!is_paged()
@kangzj, 这个是让判断分页;跟你说的是两回事,呵呵
@kangzj, 哈哈 偶还米用过分页捏
if ( is_home()这类型的语句是我唯一会的php

上次改主题的时候临时抱佛脚来的
@A.shun, 嘿,很常用的,也很好用
原来是这个问题,难怪老是没效果。
@chisdy, – – 刚好遇到有人问,就顺便分享一下
晕,以前都是query前先设个变量存起来的,现在方便鸟~
@sand, – – 主旋律默认是存着的,reset_query后就回到正规了,哈哈
学习中
query_posts();什么时候用到?我仿佛出现过,又记不得了!
@左岸读书, 哈,如其名,获取帖子的时候就用的到了
不错,我就是按照你这个把我现在用的主题解决好的,很完美的解决了…敢问有没有什么弊端的?
@网络砖家, 没啥弊端 – – 只是开始个query然后reset回去嘛
刚好需要,拿下,~
[…] 前段时间,想在侧边栏管理一下广告,让广告只在文章的页面显示,我不由自主的想到了<?php if ( is_home() ) { ?> <?php } ?>这对函数。赶忙拿来一用,结果无效。。。万戈兄写过的不同页面调用不同侧边栏我感觉有点复杂,由于学习鸭梨就搁浅没折腾了。前天无聊了从liveme童鞋那里“抄”了个订阅,由于我的我想让订阅和谷歌的那啥跟随着读者(侧边栏有效果)求点击的,但是小孙童鞋建议将订阅部分放到侧边栏顶部。我想了一下觉得这个建议不错,但是又想让大家在读文章的时候订阅一直“缠”着你,所以又想到了不同页面调用不同侧边栏,于是放狗搜了一下,没想到还真给我找到了解决问题的办法,而且还是我前几天刚刚看过的大猫的博客里。而且据了解大猫貌似就职于企鹅公司哦。 […]
高级干货,用这个方法终于搞定了。
楼主 好人啊
[…] 参考对原文 » 转载请注明出处: 博客吧 » 本文地址:http://www.boke8.net/solve-wordpress-is_home-invalid.html […]
[…] 参考对原文 […]
请问之后有没有取消wp_reset_query();这个函数的函数,我的是情侣主题,之前用 query_posts();判断作者了,在样式文件中加入wp_reset_query();后会干扰男女双方的文章正确获取。
[…] 来自:ooxx.me 标签: is_home() php WordPress […]
优秀,刚好到位。
谢谢,友链有救了
刚接触WordPress,我在主题中的function.php 用is_home()会抛一个异常。包括is_front_page(),我在index.php中使用却是正常的….请问下是为什么?
[…] 参考对原文 […]