<?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() ) { ?>是同理。
相关阅读: