return;
// Some PHP setups turn requests for / into /index.php in REQUEST_URI
- // See: http://trac.wordpress.org/ticket/5017
- // See: http://trac.wordpress.org/ticket/7173
+ // See: https://core.trac.wordpress.org/ticket/5017
+ // See: https://core.trac.wordpress.org/ticket/7173
// Disabled, for now:
// $original['path'] = preg_replace('|/index\.php$|', '/', $original['path']);
if ( !isset($redirect['query']) )
$redirect['query'] = '';
+ // If the original URL ended with non-breaking spaces, they were almost
+ // certainly inserted by accident. Let's remove them, so the reader doesn't
+ // see a 404 error with no obvious cause.
+ $redirect['path'] = preg_replace( '|(%C2%A0)+$|i', '', $redirect['path'] );
+
// It's not a preview, so remove it from URL
if ( get_query_var( 'preview' ) ) {
$redirect['query'] = remove_query_arg( 'preview', $redirect['query'] );
} elseif ( is_category() || is_tag() || is_tax() ) { // Terms (Tags/categories)
$term_count = 0;
- foreach ( $wp_query->tax_query->queries as $tax_query )
+ foreach ( $wp_query->tax_query->queried_terms as $tax_query )
$term_count += count( $tax_query['terms'] );
$obj = $wp_query->get_queried_object();
// paging and feeds
if ( get_query_var('paged') || is_feed() || get_query_var('cpage') ) {
- while ( preg_match( "#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#", $redirect['path'] ) || preg_match( '#/(comments/?)?(feed|rss|rdf|atom|rss2)(/+)?$#', $redirect['path'] ) || preg_match( '#/comment-page-[0-9]+(/+)?$#', $redirect['path'] ) ) {
+ while ( preg_match( "#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#", $redirect['path'] ) || preg_match( '#/(comments/?)?(feed|rss|rdf|atom|rss2)(/+)?$#', $redirect['path'] ) || preg_match( "#/{$wp_rewrite->comments_pagination_base}-[0-9]+(/+)?$#", $redirect['path'] ) ) {
// Strip off paging and feed
$redirect['path'] = preg_replace("#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#", '/', $redirect['path']); // strip off any existing paging
$redirect['path'] = preg_replace('#/(comments/?)?(feed|rss2?|rdf|atom)(/+|$)#', '/', $redirect['path']); // strip off feed endings
- $redirect['path'] = preg_replace('#/comment-page-[0-9]+?(/+)?$#', '/', $redirect['path']); // strip off any existing comment paging
+ $redirect['path'] = preg_replace("#/{$wp_rewrite->comments_pagination_base}-[0-9]+?(/+)?$#", '/', $redirect['path']); // strip off any existing comment paging
}
$addl_path = '';
}
if ( get_option('page_comments') && ( ( 'newest' == get_option('default_comments_page') && get_query_var('cpage') > 0 ) || ( 'newest' != get_option('default_comments_page') && get_query_var('cpage') > 1 ) ) ) {
- $addl_path = ( !empty( $addl_path ) ? trailingslashit($addl_path) : '' ) . user_trailingslashit( 'comment-page-' . get_query_var('cpage'), 'commentpaged' );
+ $addl_path = ( !empty( $addl_path ) ? trailingslashit($addl_path) : '' ) . user_trailingslashit( $wp_rewrite->comments_pagination_base . '-' . get_query_var('cpage'), 'commentpaged' );
$redirect['query'] = remove_query_arg( 'cpage', $redirect['query'] );
}
else
unset($redirect['port']);
- if ( ! empty( $user_home['scheme'] ) && $user_home['scheme'] === 'https' ) {
- $redirect['scheme'] = 'https';
- }
-
// trailing /index.php
$redirect['path'] = preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path']);
( strtolower($original['host']) != 'www.' . strtolower($redirect['host']) && 'www.' . strtolower($original['host']) != strtolower($redirect['host']) ) )
$redirect['host'] = $original['host'];
- $compare_original = array( $original['scheme'], $original['host'], $original['path'] );
+ $compare_original = array( $original['host'], $original['path'] );
if ( !empty( $original['port'] ) )
$compare_original[] = $original['port'];
if ( !empty( $original['query'] ) )
$compare_original[] = $original['query'];
- $compare_redirect = array( $redirect['scheme'], $redirect['host'], $redirect['path'] );
+ $compare_redirect = array( $redirect['host'], $redirect['path'] );
if ( !empty( $redirect['port'] ) )
$compare_redirect[] = $redirect['port'];
* @since 3.4.0
* @access private
*
+ * @param string $query_string
+ * @param array $args_to_check
+ * @param string $url
* @return string The altered query string
*/
function _remove_qs_args_if_not_in_url( $query_string, Array $args_to_check, $url ) {
* Attempts to guess the correct URL based on query vars
*
* @since 2.3.0
- * @uses $wpdb
+ *
+ * @global wpdb $wpdb WordPress database abstraction object.
*
* @return bool|string The correct URL if one is found. False on failure.
*/
return false;
}
-add_action('template_redirect', 'redirect_canonical');
-
function wp_redirect_admin_locations() {
global $wp_rewrite;
if ( ! ( is_404() && $wp_rewrite->using_permalinks() ) )
exit;
}
}
-
-add_action( 'template_redirect', 'wp_redirect_admin_locations', 1000 );