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

2013.02.8 86 Comments 35,292 次阅读

最近在给 pssheji.com 修改模版。所以需要用到一些 WordPress 函数。在折腾到侧边栏特定页面显示时,遇到了一个的问题。所以在博客记录一下,避免以后犯同样的错误。

一般情况下,在PHP中,如果需要限制一段代码,只在首页显示。都会这样写:
[cce_php]
<?php if ( is_home() ) { ?>
只会在首页显示的内容
<?php } ?>
[/cce_php]

is_home(); 函数在首页的时候会返回一个 true
上面那段代码是常用的只在首页显示
插入任何模板页PHP里都可以在WordPress主题中,常用与侧边栏 sidebar.php 或页脚 footer.php 等页面。

但是那,我在折腾 pssheji.com 的时候。用 对侧边栏进行处理,居然没效果。当时蛮笨的,没往代码方面考虑,一直以为是我的 IF 函数放错位置了,纠结了半天....实际上那:

它之前有个 query_posts(); 则会让它失效
原因是 is_home  is_sidebar  is_aipsme 这种 is_ 前缀的都是基于主循环来判断,
而 query_posts(); 会让其偏离主循环

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

[cce_php]<?php wp_reset_query(); if ( is_home() ) { ?>
我这次真的是只会在首页显示
<?php } ?>[/cce_php]

86 Responses
Comment (44)
Trackback (0)
  • #16
    IT路人 :

    其实使用wp_reset_query也就意味着释放了前面的请求,后面其实没有数据了

    2013.05.3 21:10 Reply
  • #17
    IT路人 :

    其实使用wp_reset_query也就意味着释放了前面的请求,后面其实没有数据了

    2013.05.3 21:10 Reply
  • #18
    John Shine :

    wp_query_post比query——post强大好用

    2013.04.7 20:43 Reply
  • #19
    John Shine :

    wp_query_post比query——post强大好用

    2013.04.7 20:43 Reply
  • #20
    恋爱式营销之李少强 :

    支持!!!

    2013.03.31 13:36 Reply
  • #21
    恋爱式营销之李少强 :

    支持!!!

    2013.03.31 13:36 Reply
  • #22
    小五 :

    积累了一点

    2013.03.27 22:03 Reply
    • 周良 :

      基本都是我的笔记,哈哈

      2013.03.29 15:00 Reply
  • #23
    小五 :

    积累了一点

    2013.03.27 22:03 Reply
    • 周良 :

      基本都是我的笔记,哈哈

      2013.03.29 15:00 Reply
  • #24
    好网站收录 :

    博客不错,新年快乐!

    2013.02.18 17:17 Reply
  • #25
    好网站收录 :

    博客不错,新年快乐!

    2013.02.18 17:17 Reply
    • 周良 :

      这种事情没办法的,基本每篇文章都会被这样

      2013.02.15 19:22 Reply
      • wordpress加速 :

        这个不是你原创的吧

        2013.02.15 23:14 Reply
        • 周良 :

          但貌似你是从我博客直接复制过去的吧朋友?我也不想和你说什么了。技术博客的文章本来就是笔记类型的,我不是从别人博客复制过来的,我是自己记录我自己遇到的问题。所以算是我原创。而你,却不是!明白么?

          2013.02.16 17:14 Reply
          • wordpress加速 :

            你这也是原创?就改几个字?我的也不是完全复制你的

            2013.02.17 00:17 Reply
            • 周良 :

              我擦。我记录我自己遇到的问题而已,技术文章也就这样。

              2013.02.17 12:09 Reply
              • wordpress加速 :

                那谈什么原创,把别人的文章拿来改几处就是原创了?

                2013.02.17 12:32 Reply
                • 周良 :

                  谁他妈和你说我的文章是抄的?我说的是这是我的笔记。听得懂?!

                  2013.02.17 12:39 Reply
                  • 炮哥 :

                    说的那么含糊做什么,还笔记,素质哦

                    2013.02.17 20:09 Reply
                  • 炮哥 :

                    如果你很在意版权的话,用人家的主题就不该把主题的链接改成你的周良博客

                    2013.02.17 20:16 Reply
                    • 周良 :

                      我是用的是沐歌的付费主题。明白不?不相信可以去问沐歌。主题上面本身就有周良博客的作者链接。至于原作者版权我加在友情链接页面。这个我以前和沐歌说过的。

                      2013.02.17 21:52 Reply
    • 周良 :

      这种事情没办法的,基本每篇文章都会被这样

      2013.02.15 19:22 Reply
      • wordpress加速 :

        这个不是你原创的吧

        2013.02.15 23:14 Reply
        • 周良 :

          但貌似你是从我博客直接复制过去的吧朋友?我也不想和你说什么了。技术博客的文章本来就是笔记类型的,我不是从别人博客复制过来的,我是自己记录我自己遇到的问题。所以算是我原创。而你,却不是!明白么?

          2013.02.16 17:14 Reply
          • wordpress加速 :

            你这也是原创?就改几个字?我的也不是完全复制你的

            2013.02.17 00:17 Reply
            • 周良 :

              我擦。我记录我自己遇到的问题而已,技术文章也就这样。

              2013.02.17 12:09 Reply
              • wordpress加速 :

                那谈什么原创,把别人的文章拿来改几处就是原创了?

                2013.02.17 12:32 Reply
                • 周良 :

                  谁他妈和你说我的文章是抄的?我说的是这是我的笔记。听得懂?!

                  2013.02.17 12:39 Reply
                  • 炮哥 :

                    说的那么含糊做什么,还笔记,素质哦

                    2013.02.17 20:09 Reply
                  • 炮哥 :

                    如果你很在意版权的话,用人家的主题就不该把主题的链接改成你的周良博客

                    2013.02.17 20:16 Reply
                    • 周良 :

                      我是用的是沐歌的付费主题。明白不?不相信可以去问沐歌。主题上面本身就有周良博客的作者链接。至于原作者版权我加在友情链接页面。这个我以前和沐歌说过的。

                      2013.02.17 21:52 Reply
  • #28
    给老人买什么礼物好 :

    活到老学到老啊。

    2013.02.14 17:23 Reply
  • 还没有Trackback
Leave a Reply