WordPress 6.0 如何为不同页面添加并调用非默认自定义页脚
WordPress 6.0 分页面调用自定义页脚实现步骤
操作前先把当前主题的相关文件做个本地备份,改出错了直接覆盖还原就行,避免网站打不开。
- 第一步:调整自定义页脚文件的存放位置和命名
把你写好的两个自定义页脚文件上传到当前启用主题(强烈建议用子主题,否则主题更新会直接覆盖你的自定义修改)的根目录,和主题自带的footer.php放在同一层级。
为了兼容WordPress原生调用逻辑、少写冗余代码,推荐按官方规则重命名文件:- 首页用的
home-footer.php改名为footer-home.php - 联系我们页用的
contact-us-footer.php改名为footer-contact.php
注意:两个自定义页脚文件末尾必须保留
<?php wp_footer(); ?>代码,和默认footer.php的结构保持一致,否则插件脚本、统计代码等资源无法正常加载,会出现功能异常。
如果你不想改现有文件名,后续调用时用locate_template()函数引入文件即可,下文会标注对应写法。 - 首页用的
- 第二步:替换页脚调用逻辑
两种方法选一种就行,新手优先选第一种,逻辑简单不容易误判:
方法1:直接在对应页面模板修改(最稳妥)
WordPress的页脚都是靠模板底部的get_footer()函数调用的,找到对应模板改参数就行:- 找首页模板:如果后台设置首页为静态页面,对应模板是
front-page.php;如果首页是最新文章列表,对应模板是home.php。打开对应文件拉到最底部,把原来的<?php get_footer(); ?>替换成<?php get_footer('home'); ?>即可。如果没改文件名,就替换成<?php locate_template( 'home-footer.php', true ); ?>。 - 找联系我们页模板:如果没给联系我们页单独指定模板,默认用
page.php;如果建了单独模板,一般命名为page-contact-us.php。打开对应文件拉到最底部,把原来的<?php get_footer(); ?>替换成<?php get_footer('contact'); ?>即可。如果没改文件名,就替换成<?php locate_template( 'contact-us-footer.php', true ); ?>。
方法2:统一在默认footer.php加条件判断(不用改多个模板)
不想挨个找模板的话,直接打开主题根目录的footer.php,把原有内容暂时剪切出来,先写条件判断逻辑,最后把原有内容粘到对应位置即可,示例代码:
<?php // 判定是首页时加载首页自定义页脚 if ( is_front_page() || is_home() ) { get_footer('home'); // 没改文件名就换为 locate_template( 'home-footer.php', true ); return; } // 判定是联系我们页面时加载对应自定义页脚,括号里可以填页面别名、页面ID,匹配更准确 if ( is_page('contact-us') ) { get_footer('contact'); // 没改文件名就换为 locate_template( 'contact-us-footer.php', true ); return; } // 以下粘贴原来footer.php里的所有默认内容,其他页面会正常加载默认页脚 ?> - 找首页模板:如果后台设置首页为静态页面,对应模板是
- 第三步:效果验证
改完保存文件后,如果你开了服务器缓存、装了缓存插件,一定要先清空缓存,再分别访问首页、联系我们页面,确认页脚展示内容正确,其他普通页面还是正常加载默认页脚就完成了。
常见踩坑提醒
- 不要直接修改WordPress官方默认主题、第三方付费主题的核心文件,一定要建子主题存放自定义代码和文件,否则主题更新后所有修改都会被覆盖
- 如果出现页脚空白、加载报错,先检查文件路径是否正确、文件权限是否允许读取、自定义页脚里的PHP代码有没有语法错误
- 条件判断的时候尽量用页面ID判定,比用别名、标题更稳定,不会因为后续改页面固定链接导致匹配失效
内容的提问来源于stack exchange,提问作者user9061866
相关产品推荐
相关产品推荐

