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

86

最近在给 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]

如果你有设计或者 WordPress 方面的项目需求,可以和我联系 Email:wwwzhouliang@gmail.com。

作者主页 邮箱 微博 腾讯微博 QQ Twitter Facebook Google+

共 86 条评论

  1. 给老人买什么礼物好 回复

    活到老学到老啊。

    1. 周良 (文章作者) 回复

      这个确实。

    1. 周良 (文章作者) 回复

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

      1. wordpress加速 回复

        这个不是你原创的吧

        1. 周良 (文章作者) 回复

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

          1. wordpress加速 回复

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

            1. 周良 (文章作者) 回复

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

              1. wordpress加速 回复

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

                1. 周良 (文章作者) 回复

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

                  1. 炮哥 回复

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

                  2. 炮哥 回复

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

                    1. 周良 (文章作者)

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

    1. 周良 (文章作者) 回复

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

      1. wordpress加速 回复

        这个不是你原创的吧

        1. 周良 (文章作者) 回复

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

          1. wordpress加速 回复

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

            1. 周良 (文章作者) 回复

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

              1. wordpress加速 回复

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

                1. 周良 (文章作者) 回复

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

                  1. 炮哥 回复

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

                  2. 炮哥 回复

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

                    1. 周良 (文章作者)

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

  2. 好网站收录 回复

    博客不错,新年快乐!

    1. 周良 (文章作者) 回复

      新年快乐!

  3. 好网站收录 回复

    博客不错,新年快乐!

    1. 周良 (文章作者) 回复

      新年快乐!

  4. 小五 回复

    积累了一点

    1. 周良 (文章作者) 回复

      基本都是我的笔记,哈哈

  5. 小五 回复

    积累了一点

    1. 周良 (文章作者) 回复

      基本都是我的笔记,哈哈

  6. 恋爱式营销之李少强 回复

    支持!!!

    1. 周良 (文章作者) 回复

      多谢

  7. 恋爱式营销之李少强 回复

    支持!!!

    1. 周良 (文章作者) 回复

      多谢

  8. John Shine 回复

    wp_query_post比query——post强大好用

    1. 周良 (文章作者) 回复

  9. John Shine 回复

    wp_query_post比query——post强大好用

    1. 周良 (文章作者) 回复

  10. IT路人 回复

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

    1. 周良 (文章作者) 回复

  11. IT路人 回复

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

    1. 周良 (文章作者) 回复

Leave a Reply

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 Required fields are marked *

返回顶部