rendered paste bodyfunction smart404_redirect() { if ( !is_404() ) return; // Extract search term from URL $patterns_array = array(); if ( ( $patterns = trim( get_option('ignored_patterns' ) ) ) ) { $patterns_array = explode( '\n', $patterns ); } $patterns_array[] = "/?(trackback|feed|page[0-9]*)/?$"; $patterns_array[] = "\.html$"; $patterns_array = array_map(create_function('$a', '$sep = (strpos($a, "@") === false ? "@" : "%"); return $sep.trim($a).$sep."i";'), $patterns_array); $search = preg_replace( $patterns_array, "", urldecode( $_SERVER["REQUEST_URI"] ) ); $search = basename(trim($search)); $search = preg_replace( $patterns_array, "", $search); $search = preg_replace( "@[_-]@", " ", $search); if ( in_array( 'posts', (array)get_option( 'also_search' ) ) ) { // Search for posts with exact name, redirect if one found $posts = get_posts( array( "name" => $search ) ); if ( count( $posts ) == 1 ) { wp_redirect( get_permalink( $posts[0]->ID ), 301 ); exit(); } // Do a general search, redirect if exactly one result $posts = get_posts( array( "s" => $search ) ); $GLOBALS["__smart404"]["suggestions"] = $posts; } // Search for pages if ( in_array( 'pages', (array)get_option( 'also_search' ) ) ) { $pages = get_posts( array( "s" => $search, "post_type" => "page" ) ); $GLOBALS["__smart404"]["suggestions"] = array_merge ( (array)$GLOBALS["__smart404"]["suggestions"], $pages ); }}