最近在给博客修改模版。所以需要用到一些 WordPress 函数。在折腾到侧边栏特定页面显示时,遇到了一个的问题。所以在博客记录一下,避免以后犯同样的错误。
一般情况下,在PHP中,如果需要限制一段代码,只在首页显示。都会这样写:
<?php if ( is_home() ) { ?>
只会在首页显示的内容
<?php } ?>
is_home();
函数在首页的时候会返回一个 true
上面那段代码是常用的只在首页显示
插入任何模板页PHP里都可以在WordPress主题中,常用与侧边栏 sidebar.php 或页脚 footer.php 等页面。
但是那,我在折腾的时候。用 <?php if ( is_home() ) { ?>
对侧边栏进行处理,居然没效果。当时蛮笨的,没往代码方面考虑,一直以为是我的 IF 函数放错位置了,纠结了半天....实际上那:
它之前有个 query_posts();
会让它失效
原因是 is_home is_sidebar is_aipsme
这种 is_ 前缀的都是基于主循环来判断,
而 query_posts();
会让其偏离主循环
解决方案是在 is_home();
之前加一个 wp_reset_query();
<?php wp_reset_query(); if ( is_home() ) { ?>
我这次真的是只会在首页显示
<?php } ?>
恩
其实使用wp_reset_query也就意味着释放了前面的请求,后面其实没有数据了
@IT路人 恩
wp_query_post比query——post强大好用
@John Shine 嗯
wp_query_post比query——post强大好用
@John Shine 嗯
支持!!!
@恋爱式营销之李少强 多谢
支持!!!
@恋爱式营销之李少强 多谢
积累了一点
@小五 基本都是我的笔记,哈哈
积累了一点
@小五 基本都是我的笔记,哈哈