Save your visitors from unhelpful 404 errors!
Instead of quickly giving up when a visitor reaches content that doesn’t exist, make an effort to guess what they were
after in the first place. This plugin will perform a search of your posts, pages, tags and categories, using keywords from the requested
URL. If there’s a match, redirect to that content instead of showing the error. If there’s more than one match, the
404 template can use some template tags to provide a list of suggestions to the visitor.
See the Smart 404 homepage for more information.
Returns true if there are some suggestions, false otherwise
Retrieve an array of post objects for rendering manually.
Draw a list of suggested posts.
Pass the parameter “list” to render suggestions as a list.
Query posts for use in a Loop. Eg:
<?php smart404_loop(); ?> <?php while (have_posts()) : the_post(); ?> <h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2> <?php the_excerpt(); ?> <?php endwhile; ?>
Note that the loop will not display pages correctly, as it is not built to support them. It is recommended that if you use
a loop like that above, do not enable searching of pages.
Retrieve an array of search terms used to populate the suggestions list, for use with contextual highlighting, etc.
For support and latest source code, please visit https://github.com/leonstafford/smart-404
- Unzip the package, and upload
- Activate the plugin through the ‘Plugins’ menu in WordPress
<?php smart404_suggestions() ?>in your 404 template to list suggested posts, or see ‘Template tags’ for more information.
Contributors & Developers
“Smart 404” is open source software. The following people have contributed to this plugin.Contributors
- fix deprecation notice
- add GitHub repo as communications point
- update plugin’s WP readme file
- bump WP supported version
- Revised search algorithm
- Bugfix to avoid clobbering page search results when pages are prioritised over posts (Thanks to Mark Foxwell for the catch)
- More robust pattern matching – works with .php URL extensions, and works better with underscores.
- Removed errant debug statement
- Now actually fixed redirection bug, missed in 0.4
- Added prioritising of pages, posts, tags and categories for search
- Added a new template tag to retrieve search terms
- Fixed redirection bug (thanks Emil Janizek!)
- Don’t get confused by URL parameters
- Maintain GET parameters
- Slightly smarter post matching – now matches against post title, even if post slug differs
- Bugfix for when no replacement patterns are specified
- Better URL filtering to work with URLs including /trackback, /feed, etc
- Trim whitespace from search in order to obtain more results in some circumstances