is_home()判断首页无效解决办法

选择使用 wordpress 来搭建博客,主要原因便在于 WordPress 有较高的流行度,还有各种围绕其进行的 开发的扩展功能应有尽有,基本上可以说我们在博客建设中所需的任何功能,都已有人想到并得到实现,让你不必在博客具体的技术实现及功能扩展方面投入过多的精力,而更专注于内容建设。今天再给 WordPress 增加功能时,要利用 is_home()判断是否为首页,可是发现居然不起作用,一般而言,在 WordPress 进行是否首页的判断使用的是 is_home(),从而进行首页的一些相关设定,但是有些特殊的情况下,该例是行不通的。网上找了下,大致有如下两个常见原因:

第一种:

当你的首页不是默认的 index.php 的时候,而是在后台指定了一个 page 页面。这种情况下 is_home()会失效,也就是说这样子的情况下就不能再用 is_home()来判断。is_front_page()是判断当前页是不是指定的首页,我们在上面描述的情况下需要的就是这个函数。

  1. <?php if (is_home() || is_front_page()) { ?>
  2. 我只会在首页显示
  3. <?php } ?>

注释:我在使用多站点 wordpress 进行二次开发时,需要所有的站点均指定一个 page 作为首页来显示;而且,该 page 作为首页显示时,页头还要显示一个 banner 图片。这就需要对所有 theme 主题的 page.php 文件内使用上述代码以判断是否首页。

第二种:

如果 is_home()之前有个 query_posts(),则会让它本身判断失效。原因是 is_home() 函数在首页的时候会返回一个 true 来判断,而 query_posts()会阻断这一判断。解决方案是在 is_home()之前加一个 wp_reset_query()。

  1. <?php wp_reset_query(); if ( is_home() ) { ?>
  2. 我只会在首页显示
  3. <?php } ?>

常用函数

以下是主题制作中常用到的几个判断页面的函数:

  1. is_home() : 是否为主页
  2. is_single() : 是否为内容页(Post)
  3. is_page() : 是否为内容页(Page)
  4. is_category() : 是否为Category/Archive页
  5. is_tag() : 是否为Tag存档页
  6. is_date() : 是否为指定日期存档页
  7. is_year() : 是否为指定年份存档页
  8. is_month() : 是否为指定月份存档页
  9. is_day() : 是否为指定日存档页
  10. is_time() : 是否为指定时间存档页
  11. is_archive() : 是否为存档页
  12. is_search() : 是否为搜索结果页
  13. is_404() : 是否为 “HTTP 404: Not Found”错误页
  14. is_paged() : 主页/Category/Archive页是否以多页显示
  15. is_singular() : 相当于is_single()||is_page()||is_attachment()

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/99384

WordPress安全防护插件
服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

电子邮件地址不会被公开。 必填项已用*标注

51建站客服微信二维码
点击这里购买