Home > php教程 > php手册 > 解决 <?php if ( is_home() ) { ?> 无效的方法

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

WBOY
Release: 2016-06-06 20:08:11
Original
1008 people have browsed it

最近在给 pssheji.com?修改模版。所以需要用到一些 WordPress 函数。在折腾到侧边栏特定页面显示时,遇到了一个的问题。所以在博客记录一下,避免以后犯同样的错误。 一般情况下,在PHP中,如果需要限制一段 代码 ,只在首页显示。都会这样写: ?php if is_h

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

一般情况下,在PHP中,如果需要限制一段代码,只在首页显示。都会这样写:

<?php if &#40; is_home&#40;&#41; &#41; &#123; ?>
只会在首页显示的内容
<?php &#125; ?>
Copy after login

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();

<?php wp_reset_query&#40;&#41;; if &#40; is_home&#40;&#41; &#41; &#123; ?>
我这次真的是只会在首页显示
<?php &#125; ?>
Copy after login

《解决 无效的方法》原文发表于: 周良博客 投稿信箱:xiaowu@aips.me 周良博客 关于周良 我的腾讯微博 我的新浪微博 QQ邮箱订阅

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template