web/wp-includes/canonical.php
branchwordpress
changeset 132 4d4862461b8d
parent 109 03b0d1493584
equal deleted inserted replaced
131:a4642baaf829 132:4d4862461b8d
    82 	// These tests give us a WP-generated permalink
    82 	// These tests give us a WP-generated permalink
    83 	if ( is_404() ) {
    83 	if ( is_404() ) {
    84 		$redirect_url = redirect_guess_404_permalink();
    84 		$redirect_url = redirect_guess_404_permalink();
    85 	} elseif ( is_object($wp_rewrite) && $wp_rewrite->using_permalinks() ) {
    85 	} elseif ( is_object($wp_rewrite) && $wp_rewrite->using_permalinks() ) {
    86 		// rewriting of old ?p=X, ?m=2004, ?m=200401, ?m=20040101
    86 		// rewriting of old ?p=X, ?m=2004, ?m=200401, ?m=20040101
    87 		if ( is_single() && !empty($_GET['p']) && ! $redirect_url ) {
    87 		if ( is_attachment() && !empty($_GET['attachment_id']) && ! $redirect_url ) {
       
    88 			if ( $redirect_url = get_attachment_link(get_query_var('attachment_id')) )
       
    89 				$redirect['query'] = remove_query_arg('attachment_id', $redirect['query']);
       
    90 		} elseif ( is_single() && !empty($_GET['p']) && ! $redirect_url ) {
    88 			if ( $redirect_url = get_permalink(get_query_var('p')) )
    91 			if ( $redirect_url = get_permalink(get_query_var('p')) )
    89 				$redirect['query'] = remove_query_arg('p', $redirect['query']);
    92 				$redirect['query'] = remove_query_arg('p', $redirect['query']);
    90 			if ( get_query_var( 'page' ) ) {
    93 			if ( get_query_var( 'page' ) ) {
    91 				$redirect_url = trailingslashit( $redirect_url ) . user_trailingslashit( get_query_var( 'page' ), 'single_paged' );
    94 				$redirect_url = trailingslashit( $redirect_url ) . user_trailingslashit( get_query_var( 'page' ), 'single_paged' );
    92 				$redirect['query'] = remove_query_arg( 'page', $redirect['query'] );
    95 				$redirect['query'] = remove_query_arg( 'page', $redirect['query'] );
    93 			}
    96 			}
       
    97 		} elseif ( is_single() && !empty($_GET['name'])  && ! $redirect_url ) {
       
    98 			if ( $redirect_url = get_permalink( $wp_query->get_queried_object_id() ) )
       
    99 				$redirect['query'] = remove_query_arg('name', $redirect['query']);
    94 		} elseif ( is_page() && !empty($_GET['page_id']) && ! $redirect_url ) {
   100 		} elseif ( is_page() && !empty($_GET['page_id']) && ! $redirect_url ) {
    95 			if ( $redirect_url = get_permalink(get_query_var('page_id')) )
   101 			if ( $redirect_url = get_permalink(get_query_var('page_id')) )
    96 				$redirect['query'] = remove_query_arg('page_id', $redirect['query']);
   102 				$redirect['query'] = remove_query_arg('page_id', $redirect['query']);
    97 		} elseif ( !empty($_GET['m']) && ( is_year() || is_month() || is_day() ) ) {
   103 		} elseif ( !empty($_GET['m']) && ( is_year() || is_month() || is_day() ) ) {
    98 			$m = get_query_var('m');
   104 			$m = get_query_var('m');
   120 			if ( $redirect_url = get_year_link(get_query_var('year')) )
   126 			if ( $redirect_url = get_year_link(get_query_var('year')) )
   121 				$redirect['query'] = remove_query_arg('year', $redirect['query']);
   127 				$redirect['query'] = remove_query_arg('year', $redirect['query']);
   122 		} elseif ( is_category() && !empty($_GET['cat']) && preg_match( '|^[0-9]+$|', $_GET['cat'] ) ) {
   128 		} elseif ( is_category() && !empty($_GET['cat']) && preg_match( '|^[0-9]+$|', $_GET['cat'] ) ) {
   123 			if ( $redirect_url = get_category_link(get_query_var('cat')) )
   129 			if ( $redirect_url = get_category_link(get_query_var('cat')) )
   124 				$redirect['query'] = remove_query_arg('cat', $redirect['query']);
   130 				$redirect['query'] = remove_query_arg('cat', $redirect['query']);
   125 		} elseif ( is_author() && !empty($_GET['author']) ) {
   131 		} elseif ( is_author() && !empty($_GET['author']) && preg_match( '|^[0-9]+$|', $_GET['author'] ) ) {
   126 			$author = get_userdata(get_query_var('author'));
   132 			$author = get_userdata(get_query_var('author'));
   127 			if ( false !== $author && $redirect_url = get_author_posts_url($author->ID, $author->user_nicename) )
   133 			if ( false !== $author && $redirect_url = get_author_posts_url($author->ID, $author->user_nicename) )
   128 				$redirect['query'] = remove_query_arg('author', $redirect['author']);
   134 				$redirect['query'] = remove_query_arg('author', $redirect['author']);
   129 		}
   135 		}
   130 
   136