All pastes #1853351 Raw Edit

Untitled

public php v1 · immutable
#1853351 ·published 2010-03-26 21:01 UTC
rendered paste body
function 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 );	}}