Add this to the VERY top of your theme’s 404 page.
Change http://localhost/wordpress to your default wordpress folder.
This just does posts and possibly pages that end in the id (with or without the trailing url) Categories etc will have to be done elsewhere or by hand.
< ?php
//Kinda obvious
$rf = $_SERVER['REQUEST_URI'];
$rf = explode('/',$rf);
$last = count($rf);
//Filter out regular 404 that arn't old urls
if(is_numeric($rf[$last-1])){
$post_id = $rf[$last-1];
}elseif(is_numeric($rf[$last-2])){
$post_id = $rf[$last-2];
}
// No sense loading WP if there isn't an id
if ( $post_id ) {
// Oh fine we will load wordpress
define('WP_USE_THEMES', false);
require('http://localhost/wordpress/wp-blog-header.php');
$post = get_post($post_id);
//Well hope it is the right post. If not, ohwell. We tried.
if($post){
//Lets get the new URL
$new_link = get_permalink($post_id);
//We don't want google to get angry with us.
header("HTTP/1.1 301 Moved Permanently");
header("Location: $new_link");
}
}
?>
I came from kates website (sideblog) to yours,
hence you seem to be a genius with sql and php,
I hope that you might find out what causes this strange behavior with pages and wordpress 2.1 (latest):
with my wordpress 2.1 and the 3.6er sideblog plugin activated,
pages are hidden and return a 404,
if I deactivate the plugin,
they are right back and show.
any clue?
faustina of gollygolly.com has the same issue.
I found out that pages seem to be different in wp 2.1,
here is a link describing it more in detail:
http://www.transycan.net/blogtest/2007/01/23/how-pages-are-different-in-wp-21/
in case you find a quick fix,
feel free to share it,
cheerio!
I’m not going to start supporting other people’s plugins but you can try:
Find in sideblog.php:
Replace with:
I haven’t personally seen this happen on my website, so it may work it may not.
Hey thanks, that worked great.
Pingback: Buffer Dump 23JAN08 « Feet up, eyes closed, head back