宝宝健康成长网首页刘易桉宝宝健康成长 林林微博 育儿护理知识 宝宝网址导航
当前位置: 首页 >> 宝宝建站 >> <?php if ( is_home() ) { ?>无效的解决

<?php if ( is_home() ) { ?>无效的解决

<?php if ( is_home() ) { ?>和<?php if ( !is_home() ) { ?>是WordPress两个常用的函数,用来自定义某模块是否在首页显示。该函数可插入任何模板页PHP里,例如侧边栏 sidebar.php 或页脚 footer.php里。我在sidebar.php里就添加了该函数,首页显示“热门日志”,而在其他页面切换为“最新日志”。

不过,今天在给宝宝健康成长网添加<?php if ( is_home() ) { ?>和<?php if ( !is_home() ) { ?>两个函数时,碰到函数失效的问题,感谢Google,在大猫的博客找到了解决方法。原来又是query_posts()惹得祸。

<?php if ( is_home() ) { ?>
我只会在首页显示
<?php } ?>

但如果它之前有个 query_posts(); 则会让它失效
原因是 is_home(); 函数在首页的时候会返回一个 true 来判断,而 query_posts(); 会阻断这一判断。

解决方案是在 is_home(); 之前加一个 wp_reset_query();

<?php wp_reset_query(); if ( is_home() ) { ?>
我只会在首页显示, 真的!
<?php } ?>

<?php if ( !is_home() ) { ?>是同理。

敬请留言当前共有 7 条评论

  1. LOO2K 说道:

    o(╯□╰)o,原来如此。之前一直在折腾这个问题,还曾经怀疑过自己的人品,明明是不错错的代码,但是却没效果。

    Thks. :)

  2. Dulzor 说道:

    有个问题,
    想改成全站显示,怎么改

  3. 二手科学家 说道:

    @Dulzor 您好!定义某模块全站显示,只要不定义is_home()语句即可。

  4. IdcYou 说道:

    今天正好遇到一个相关问题,搜索了半天还是在你这边找到了些灵感,我发现同样的代码在新老wordpress版本上效果就不一样,郁闷!

  5. Rauz 说道:

    向楼主请教一个php语法问题,为什么下面独立代码执行显示的是空白?

    单独调试这if代码的时候,显示的是空白,即使不存在is_home()函数,也输出div吧?

  6. Rauz 说道:

    留言把代码过滤啦。

  7. 之前一直在折腾这个问题

发表评论

^留言没头像?教你设置头像!
我的应用 Follow@cnbabyup 宝宝问答>  0-1岁  1-3岁  3-6岁 手气不错