搜索页与 404 页

作者: admin 分类: wordpress主题制作教程 发布时间: 2026-11-06 18:45

两个最容易被省略的模板

caogenbj 就缺这两个(卷一第 3 篇讲过后果):缺 search.php,搜索结果页跟首页长得一样;缺 404.php,访客输错地址看到的是一堆文章。

这一篇把它们补上。

search.php

<?php get_header(); ?>

<div class="content">
    <h1>搜索「<?php echo esc_html( get_search_query() ); ?>」</h1>

    <?php if ( have_posts() ) : ?>
        <p class="search-count">找到 <?php global $wp_query; echo $wp_query->found_posts; ?> 篇</p>
        <ul class="search-list">
        <?php while ( have_posts() ) : the_post(); ?>
            <li>
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
                <div class="post-meta"><?php the_time( 'Y-m-d' ); ?></div>
            </li>
        <?php endwhile; ?>
        </ul>
        <?php the_posts_pagination(); ?>
    <?php else : ?>
        <p>没有找到相关内容。换个关键词试试?</p>
        <?php get_search_form(); ?>
    <?php endif; ?>
</div>

<?php get_footer(); ?>

三个要点:

  • 标题里带搜索词,用户才知道自己搜了什么;
  • 显示找到几篇,有个反馈;
  • 没有结果时,给出提示 + 再放一个搜索框。

404.php

<?php get_header(); ?>

<div class="content error-404">
    <h1>页面不存在</h1>
    <p>你要找的页面可能已经删除、改名,或者地址输错了。</p>

    <p>你可以:</p>
    <ul>
        <li><a href="<?php echo esc_url( home_url('/') ); ?>">回首页</a></li>
        <li>用下面的搜索框找找</li>
    </ul>

    <?php get_search_form(); ?>

    <h2>最新文章</h2>
    <ul>
    <?php
    $latest = new WP_Query( array( 'posts_per_page' => 5, 'ignore_sticky_posts' => 1 ) );
    while ( $latest->have_posts() ) {
        $latest->the_post();
        echo '<li><a href="' . esc_url( get_permalink() ) . '">' . esc_html( get_the_title() ) . '</a></li>';
    }
    wp_reset_postdata();
    ?>
    </ul>
</div>

<?php get_footer(); ?>

404 页的三件事:

  1. 说清楚发生了什么(不是冷冰冰的“404”);
  2. 给出路(回首页、搜索);
  3. 给点内容(最新文章),别让访客直接走。

404 页的 SEO 注意

404 页应该返回 HTTP 404 状态码。WordPress 默认会返回,但如果你在 404 页里做了什么奇怪的操作(比如手动 header('HTTP/1.1 200 OK')),就变成了“软 404”,搜索引擎会把不存在的页面当成正常页面收录。

检查方法:访问一个不存在的地址,用开发者工具看状态码是不是 404。

小结

一句话记住:search.php 要显示搜索词和结果数;404.php 要说清楚 + 给出路 + 给内容;状态码必须是真 404。

下一篇做侧栏和搜索框。

本系列导航

相关文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Powered by 草根站长笔记 © 2015-2026 草根站长笔记 Inc.版权所有,禁止转载