为WordPress经典主题创建404页面
当访客点击了一个失效链接,或者手动输入了错误的网址,你的网站会返回一个404状态码,并显示一个错误页面。如果这个页面是空白的,或者干脆是服务器默认的报错界面,访客大概率会直接关掉浏览器。一个经过设计的404页面,不仅是友好的提示,更是一个导航工具——它应该引导访客回到网站的正常内容中。这篇文章会从零开始,一步步在经典WordPress主题中添加一个实用的404.php模板,里面的代码直接复制就能用,同时会解释清楚每一步在做什么。
一步:创建404.php文件
在WordPress的主题层级里,404.php是一个有特殊使命的模板文件。当系统判定当前请求的URL没有对应的内容时,就会自动加载这个文件来输出页面。
操作很简单:在你的主题文件夹(比如 /wp-content/themes/your-theme-name/)里,新建一个名为 404.php 的文本文件。
从哪里开始写比较顺手?大部分开发者会直接复制主题里的 index.php 的全部内容作为起点,然后在此基础上删减和修改。因为首页模板通常已经包含了完整的页面结构(get_header()、get_footer()、主内容区等),可以省去重复搭建骨架的功夫。
二步:引入页头文件
在 404.php 的顶部,先用一段PHP注释说明文件用途,然后调用 get_header() 函数。这个函数会去加载主题里的 header.php 文件,把网站的导航菜单、LOGO、字符集声明等公共头部元素都拉进来。
php
/** * 404页面模板 * 用于处理访问不存在的页面时的展示 */ get_header();
解释一下: get_header() 是WordPress的核心函数之一,它的作用就是把头部模板嵌入到当前文件中。这样你不需要在每个页面重复写头部代码,改一处 header.php,全站跟着变。
三步:添加页面主体内容
接下来要填充页面的“正文区域”。在经典主题结构中,内容通常被包裹在 <div id="primary"> 或 <main> 标签里,这里会放上404专属的提示文字和搜索框。
下面是一段可直接用的示例代码,做了简化处理,去掉了具体主题的样式类名,保留了核心结构:
php
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<header class="page-header">
<h1 class="page-title">哎呀,页面走丢了</h1>
</header>
<div class="page-wrapper">
<div class="page-content">
<h2>这有点尴尬,不是吗?</h2>
<p>你访问的位置没有找到任何内容。要不试试下面的搜索?</p>
<?php get_search_form(); ?>
</div>
</div>
</main>
</div>
代码做了什么?
- 页面标题用的是
<h1>,告诉用户这是“404”类型的错误。 - 内层用
<h2>和<p>写了友好的道歉文案,这里你可以换成自己的语气,比如“啊哦,我们把它弄丢了”之类的。 <?php get_search_form(); ?>是核心——它直接输出一个标准的WordPress搜索表单。这是给访客直接的补救措施:既然当前页面没有,那就搜一下关键词看看。
关于本地化函数 _e(): 示例里用到了 _e( 'Not Found', 'twentythirteen' ),这是用来做多语言翻译的。对于初学者,如果你不需要多语言支持,直接用中文字符串即可,比如写 <h1>页面未找到</h1>,代码更清晰易懂。
四步:加上侧边栏和页脚
主体内容写完,后一步是收尾——把主题的侧边栏和页脚加载进来。同样通过两个核心函数实现:
php
get_sidebar(); get_footer();
get_sidebar() 负责引入 sidebar.php 文件,显示小工具区域;get_footer() 引入 footer.php,输出版权信息、关闭标签等。这两个函数放在 404.php 的结尾即可,和你在其他页面模板中的用法完全一致。
如何测试你的404页面
文件上传到服务器后,怎么确认它生效了?很简单:在浏览器地址栏里输入你网站域名下的一个肯定不存在的路径,比如:
https://你的域名/这是一个不存在的页面.htmlhttps://你的域名/随便打几个字
只要能进入你刚才编写的那个带有搜索框的页面,就说明配置成功了。
一些额外的实用经验
让404页面更友好: 除了搜索框,还可以考虑放一个“返回首页”的醒目按钮,或者列出近更新的几篇文章。这些信息能给迷路的访客更多选择,降低跳出率。
保持视觉统一: 404页面应该继承主题的整体样式(颜色、字体、间距),不要搞得像另一个网站。利用好 header.php 和 footer.php 就能保证这一点。
不要忽视SEO: 虽然404页面不需要被搜索引擎收录,但它返回的HTTP状态码必须是真正的404,而不是200。WordPress默认会处理这个状态码,只要你是通过 404.php 输出的就没问题。另外,页面上的文案好包含“未找到”、“搜索”等关键词,帮助访客快速理解状况。
关于侧边栏: 不是所有主题都有侧边栏,如果你的主题是全宽布局,调用 get_sidebar() 可能会产生空区域。可以先检查下主题里是否存在 sidebar.php 文件,再决定是否调用。
总结一下:一个标准的WordPress 404页面,核心就是 404.php 这个文件,它通过 get_header()、主体内容(含搜索表单)、get_sidebar()(可选)和 get_footer() 组合而成。它的使命不是在错误发生时“道歉”,而是提供一个清晰的出口,让访客可以继续探索你的网站。把这个模板做好,比你花时间琢磨每一处文案措辞要重要得多。