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 are 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(); ?>