404 Page for WordPress with Suggestions

If a visitor mistypes a URL to your WordPress blog or clicks on a link that does not exists, you can show them a more helpful 404 error page that will have suggestions pointing to related articles that they can check out on your WordPress site. Internally, it runs a search using the 404 page URL as the query parameter.

Save this file as 404.php and place it in your WordPress theme folder.

<?php get_header(); ?>

<div id="content" class="section">
    
    <h2>404 Error - Page not found</h2>
    
    <?php get_template_part('searchform'); ?>
    
    <?php 
        global $wp_query; 
        $wp_query->query_vars['is_search'] = true; 
        $s = str_replace("-", " ", $wp_query->query_vars['name']); 
        $loop = new WP_Query('post_type=any&s=' . $s); 
    ?>

    <?php if ($loop->have_posts()): ?> 
        <p>We tried finding the matching pages from our website. Here're some suggestions:</p>
            <ol>     
                <?php while ($loop->have_posts()): $loop->the_post(); ?> 
                    <li> 
                        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 
                        <?php the_excerpt(); ?> 
                    </li> 
                <?php endwhile; ?> 
            </ol> 
    <?php endif; ?>
    
</div> 

<?php get_sidebar(); ?>
<?php get_footer(); ?>