Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu...
File: canonical.php
}
[500] Fix | Delete
} elseif ( $paged > 1 ) {
[501] Fix | Delete
$redirect['query'] = add_query_arg( 'paged', $paged, $redirect['query'] );
[502] Fix | Delete
}
[503] Fix | Delete
}
[504] Fix | Delete
[505] Fix | Delete
$default_comments_page = get_option( 'default_comments_page' );
[506] Fix | Delete
[507] Fix | Delete
if ( get_option( 'page_comments' )
[508] Fix | Delete
&& ( 'newest' === $default_comments_page && $cpage > 0
[509] Fix | Delete
|| 'newest' !== $default_comments_page && $cpage > 1 )
[510] Fix | Delete
) {
[511] Fix | Delete
$addl_path = ( ! empty( $addl_path ) ? trailingslashit( $addl_path ) : '' );
[512] Fix | Delete
$addl_path .= user_trailingslashit( $wp_rewrite->comments_pagination_base . '-' . $cpage, 'commentpaged' );
[513] Fix | Delete
[514] Fix | Delete
$redirect['query'] = remove_query_arg( 'cpage', $redirect['query'] );
[515] Fix | Delete
}
[516] Fix | Delete
[517] Fix | Delete
// Strip off trailing /index.php/.
[518] Fix | Delete
$redirect['path'] = preg_replace( '|/' . preg_quote( $wp_rewrite->index, '|' ) . '/?$|', '/', $redirect['path'] );
[519] Fix | Delete
$redirect['path'] = user_trailingslashit( $redirect['path'] );
[520] Fix | Delete
[521] Fix | Delete
if ( ! empty( $addl_path )
[522] Fix | Delete
&& $wp_rewrite->using_index_permalinks()
[523] Fix | Delete
&& ! str_contains( $redirect['path'], '/' . $wp_rewrite->index . '/' )
[524] Fix | Delete
) {
[525] Fix | Delete
$redirect['path'] = trailingslashit( $redirect['path'] ) . $wp_rewrite->index . '/';
[526] Fix | Delete
}
[527] Fix | Delete
[528] Fix | Delete
if ( ! empty( $addl_path ) ) {
[529] Fix | Delete
$redirect['path'] = trailingslashit( $redirect['path'] ) . $addl_path;
[530] Fix | Delete
}
[531] Fix | Delete
[532] Fix | Delete
$redirect_url = $redirect['scheme'] . '://' . $redirect['host'] . $redirect['path'];
[533] Fix | Delete
}
[534] Fix | Delete
[535] Fix | Delete
if ( 'wp-register.php' === basename( $redirect['path'] ) ) {
[536] Fix | Delete
if ( is_multisite() ) {
[537] Fix | Delete
/** This filter is documented in wp-login.php */
[538] Fix | Delete
$redirect_url = apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) );
[539] Fix | Delete
} else {
[540] Fix | Delete
$redirect_url = wp_registration_url();
[541] Fix | Delete
}
[542] Fix | Delete
[543] Fix | Delete
wp_redirect( $redirect_url, 301 );
[544] Fix | Delete
die();
[545] Fix | Delete
}
[546] Fix | Delete
}
[547] Fix | Delete
[548] Fix | Delete
$is_attachment_redirect = false;
[549] Fix | Delete
[550] Fix | Delete
if ( is_attachment() && ! get_option( 'wp_attachment_pages_enabled' ) ) {
[551] Fix | Delete
$attachment_id = get_query_var( 'attachment_id' );
[552] Fix | Delete
$attachment_post = get_post( $attachment_id );
[553] Fix | Delete
$attachment_parent_id = $attachment_post ? $attachment_post->post_parent : 0;
[554] Fix | Delete
[555] Fix | Delete
$attachment_url = wp_get_attachment_url( $attachment_id );
[556] Fix | Delete
if ( $attachment_url !== $redirect_url ) {
[557] Fix | Delete
/*
[558] Fix | Delete
* If an attachment is attached to a post, it inherits the parent post's status. Fetch the
[559] Fix | Delete
* parent post to check its status later.
[560] Fix | Delete
*/
[561] Fix | Delete
if ( $attachment_parent_id ) {
[562] Fix | Delete
$redirect_obj = get_post( $attachment_parent_id );
[563] Fix | Delete
}
[564] Fix | Delete
$redirect_url = $attachment_url;
[565] Fix | Delete
}
[566] Fix | Delete
[567] Fix | Delete
$is_attachment_redirect = true;
[568] Fix | Delete
}
[569] Fix | Delete
[570] Fix | Delete
$redirect['query'] = preg_replace( '#^\??&*?#', '', $redirect['query'] );
[571] Fix | Delete
[572] Fix | Delete
// Tack on any additional query vars.
[573] Fix | Delete
if ( $redirect_url && ! empty( $redirect['query'] ) ) {
[574] Fix | Delete
parse_str( $redirect['query'], $_parsed_query );
[575] Fix | Delete
$redirect = parse_url( $redirect_url );
[576] Fix | Delete
[577] Fix | Delete
if ( ! empty( $_parsed_query['name'] ) && ! empty( $redirect['query'] ) ) {
[578] Fix | Delete
parse_str( $redirect['query'], $_parsed_redirect_query );
[579] Fix | Delete
[580] Fix | Delete
if ( empty( $_parsed_redirect_query['name'] ) ) {
[581] Fix | Delete
unset( $_parsed_query['name'] );
[582] Fix | Delete
}
[583] Fix | Delete
}
[584] Fix | Delete
[585] Fix | Delete
$_parsed_query = array_combine(
[586] Fix | Delete
rawurlencode_deep( array_keys( $_parsed_query ) ),
[587] Fix | Delete
rawurlencode_deep( array_values( $_parsed_query ) )
[588] Fix | Delete
);
[589] Fix | Delete
[590] Fix | Delete
$redirect_url = add_query_arg( $_parsed_query, $redirect_url );
[591] Fix | Delete
}
[592] Fix | Delete
[593] Fix | Delete
if ( $redirect_url ) {
[594] Fix | Delete
$redirect = parse_url( $redirect_url );
[595] Fix | Delete
}
[596] Fix | Delete
[597] Fix | Delete
// www.example.com vs. example.com
[598] Fix | Delete
$user_home = parse_url( home_url() );
[599] Fix | Delete
[600] Fix | Delete
if ( ! empty( $user_home['host'] ) ) {
[601] Fix | Delete
$redirect['host'] = $user_home['host'];
[602] Fix | Delete
}
[603] Fix | Delete
[604] Fix | Delete
if ( empty( $user_home['path'] ) ) {
[605] Fix | Delete
$user_home['path'] = '/';
[606] Fix | Delete
}
[607] Fix | Delete
[608] Fix | Delete
// Handle ports.
[609] Fix | Delete
if ( ! empty( $user_home['port'] ) ) {
[610] Fix | Delete
$redirect['port'] = $user_home['port'];
[611] Fix | Delete
} else {
[612] Fix | Delete
unset( $redirect['port'] );
[613] Fix | Delete
}
[614] Fix | Delete
[615] Fix | Delete
// Trailing /index.php.
[616] Fix | Delete
$redirect['path'] = preg_replace( '|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path'] );
[617] Fix | Delete
[618] Fix | Delete
$punctuation_pattern = implode(
[619] Fix | Delete
'|',
[620] Fix | Delete
array_map(
[621] Fix | Delete
'preg_quote',
[622] Fix | Delete
array(
[623] Fix | Delete
' ',
[624] Fix | Delete
'%20', // Space.
[625] Fix | Delete
'!',
[626] Fix | Delete
'%21', // Exclamation mark.
[627] Fix | Delete
'"',
[628] Fix | Delete
'%22', // Double quote.
[629] Fix | Delete
"'",
[630] Fix | Delete
'%27', // Single quote.
[631] Fix | Delete
'(',
[632] Fix | Delete
'%28', // Opening bracket.
[633] Fix | Delete
')',
[634] Fix | Delete
'%29', // Closing bracket.
[635] Fix | Delete
',',
[636] Fix | Delete
'%2C', // Comma.
[637] Fix | Delete
'.',
[638] Fix | Delete
'%2E', // Period.
[639] Fix | Delete
';',
[640] Fix | Delete
'%3B', // Semicolon.
[641] Fix | Delete
'{',
[642] Fix | Delete
'%7B', // Opening curly bracket.
[643] Fix | Delete
'}',
[644] Fix | Delete
'%7D', // Closing curly bracket.
[645] Fix | Delete
'%E2%80%9C', // Opening curly quote.
[646] Fix | Delete
'%E2%80%9D', // Closing curly quote.
[647] Fix | Delete
)
[648] Fix | Delete
)
[649] Fix | Delete
);
[650] Fix | Delete
[651] Fix | Delete
// Remove trailing spaces and end punctuation from the path.
[652] Fix | Delete
$redirect['path'] = preg_replace( "#($punctuation_pattern)+$#", '', $redirect['path'] );
[653] Fix | Delete
[654] Fix | Delete
if ( ! empty( $redirect['query'] ) ) {
[655] Fix | Delete
// Remove trailing spaces and end punctuation from certain terminating query string args.
[656] Fix | Delete
$redirect['query'] = preg_replace( "#((^|&)(p|page_id|cat|tag)=[^&]*?)($punctuation_pattern)+$#", '$1', $redirect['query'] );
[657] Fix | Delete
[658] Fix | Delete
// Clean up empty query strings.
[659] Fix | Delete
$redirect['query'] = trim( preg_replace( '#(^|&)(p|page_id|cat|tag)=?(&|$)#', '&', $redirect['query'] ), '&' );
[660] Fix | Delete
[661] Fix | Delete
// Redirect obsolete feeds.
[662] Fix | Delete
$redirect['query'] = preg_replace( '#(^|&)feed=rss(&|$)#', '$1feed=rss2$2', $redirect['query'] );
[663] Fix | Delete
[664] Fix | Delete
// Remove redundant leading ampersands.
[665] Fix | Delete
$redirect['query'] = preg_replace( '#^\??&*?#', '', $redirect['query'] );
[666] Fix | Delete
}
[667] Fix | Delete
[668] Fix | Delete
// Strip /index.php/ when we're not using PATHINFO permalinks.
[669] Fix | Delete
if ( ! $wp_rewrite->using_index_permalinks() ) {
[670] Fix | Delete
$redirect['path'] = str_replace( '/' . $wp_rewrite->index . '/', '/', $redirect['path'] );
[671] Fix | Delete
}
[672] Fix | Delete
[673] Fix | Delete
// Trailing slashes.
[674] Fix | Delete
if ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks()
[675] Fix | Delete
&& ! $is_attachment_redirect
[676] Fix | Delete
&& ! is_404() && ( ! is_front_page() || is_front_page() && get_query_var( 'paged' ) > 1 )
[677] Fix | Delete
) {
[678] Fix | Delete
$user_ts_type = '';
[679] Fix | Delete
[680] Fix | Delete
if ( get_query_var( 'paged' ) > 0 ) {
[681] Fix | Delete
$user_ts_type = 'paged';
[682] Fix | Delete
} else {
[683] Fix | Delete
foreach ( array( 'single', 'category', 'page', 'day', 'month', 'year', 'home' ) as $type ) {
[684] Fix | Delete
$func = 'is_' . $type;
[685] Fix | Delete
if ( call_user_func( $func ) ) {
[686] Fix | Delete
$user_ts_type = $type;
[687] Fix | Delete
break;
[688] Fix | Delete
}
[689] Fix | Delete
}
[690] Fix | Delete
}
[691] Fix | Delete
[692] Fix | Delete
$redirect['path'] = user_trailingslashit( $redirect['path'], $user_ts_type );
[693] Fix | Delete
} elseif ( is_front_page() ) {
[694] Fix | Delete
$redirect['path'] = trailingslashit( $redirect['path'] );
[695] Fix | Delete
}
[696] Fix | Delete
[697] Fix | Delete
// Remove trailing slash for robots.txt or sitemap requests.
[698] Fix | Delete
if ( is_robots()
[699] Fix | Delete
|| ! empty( get_query_var( 'sitemap' ) ) || ! empty( get_query_var( 'sitemap-stylesheet' ) )
[700] Fix | Delete
) {
[701] Fix | Delete
$redirect['path'] = untrailingslashit( $redirect['path'] );
[702] Fix | Delete
}
[703] Fix | Delete
[704] Fix | Delete
// Strip multiple slashes out of the URL.
[705] Fix | Delete
if ( str_contains( $redirect['path'], '//' ) ) {
[706] Fix | Delete
$redirect['path'] = preg_replace( '|/+|', '/', $redirect['path'] );
[707] Fix | Delete
}
[708] Fix | Delete
[709] Fix | Delete
// Always trailing slash the Front Page URL.
[710] Fix | Delete
if ( trailingslashit( $redirect['path'] ) === trailingslashit( $user_home['path'] ) ) {
[711] Fix | Delete
$redirect['path'] = trailingslashit( $redirect['path'] );
[712] Fix | Delete
}
[713] Fix | Delete
[714] Fix | Delete
$original_host_low = strtolower( $original['host'] );
[715] Fix | Delete
$redirect_host_low = strtolower( $redirect['host'] );
[716] Fix | Delete
[717] Fix | Delete
/*
[718] Fix | Delete
* Ignore differences in host capitalization, as this can lead to infinite redirects.
[719] Fix | Delete
* Only redirect no-www <=> yes-www.
[720] Fix | Delete
*/
[721] Fix | Delete
if ( $original_host_low === $redirect_host_low
[722] Fix | Delete
|| ( 'www.' . $original_host_low !== $redirect_host_low
[723] Fix | Delete
&& 'www.' . $redirect_host_low !== $original_host_low )
[724] Fix | Delete
) {
[725] Fix | Delete
$redirect['host'] = $original['host'];
[726] Fix | Delete
}
[727] Fix | Delete
[728] Fix | Delete
$compare_original = array( $original['host'], $original['path'] );
[729] Fix | Delete
[730] Fix | Delete
if ( ! empty( $original['port'] ) ) {
[731] Fix | Delete
$compare_original[] = $original['port'];
[732] Fix | Delete
}
[733] Fix | Delete
[734] Fix | Delete
if ( ! empty( $original['query'] ) ) {
[735] Fix | Delete
$compare_original[] = $original['query'];
[736] Fix | Delete
}
[737] Fix | Delete
[738] Fix | Delete
$compare_redirect = array( $redirect['host'], $redirect['path'] );
[739] Fix | Delete
[740] Fix | Delete
if ( ! empty( $redirect['port'] ) ) {
[741] Fix | Delete
$compare_redirect[] = $redirect['port'];
[742] Fix | Delete
}
[743] Fix | Delete
[744] Fix | Delete
if ( ! empty( $redirect['query'] ) ) {
[745] Fix | Delete
$compare_redirect[] = $redirect['query'];
[746] Fix | Delete
}
[747] Fix | Delete
[748] Fix | Delete
if ( $compare_original !== $compare_redirect ) {
[749] Fix | Delete
$redirect_url = $redirect['scheme'] . '://' . $redirect['host'];
[750] Fix | Delete
[751] Fix | Delete
if ( ! empty( $redirect['port'] ) ) {
[752] Fix | Delete
$redirect_url .= ':' . $redirect['port'];
[753] Fix | Delete
}
[754] Fix | Delete
[755] Fix | Delete
$redirect_url .= $redirect['path'];
[756] Fix | Delete
[757] Fix | Delete
if ( ! empty( $redirect['query'] ) ) {
[758] Fix | Delete
$redirect_url .= '?' . $redirect['query'];
[759] Fix | Delete
}
[760] Fix | Delete
}
[761] Fix | Delete
[762] Fix | Delete
if ( ! $redirect_url || $redirect_url === $requested_url ) {
[763] Fix | Delete
return;
[764] Fix | Delete
}
[765] Fix | Delete
[766] Fix | Delete
// Hex-encoded octets are case-insensitive.
[767] Fix | Delete
if ( str_contains( $requested_url, '%' ) ) {
[768] Fix | Delete
if ( ! function_exists( 'lowercase_octets' ) ) {
[769] Fix | Delete
/**
[770] Fix | Delete
* Converts the first hex-encoded octet match to lowercase.
[771] Fix | Delete
*
[772] Fix | Delete
* @since 3.1.0
[773] Fix | Delete
* @ignore
[774] Fix | Delete
*
[775] Fix | Delete
* @param array $matches Hex-encoded octet matches for the requested URL.
[776] Fix | Delete
* @return string Lowercased version of the first match.
[777] Fix | Delete
*/
[778] Fix | Delete
function lowercase_octets( $matches ) {
[779] Fix | Delete
return strtolower( $matches[0] );
[780] Fix | Delete
}
[781] Fix | Delete
}
[782] Fix | Delete
[783] Fix | Delete
$requested_url = preg_replace_callback( '|%[a-fA-F0-9][a-fA-F0-9]|', 'lowercase_octets', $requested_url );
[784] Fix | Delete
}
[785] Fix | Delete
[786] Fix | Delete
if ( $redirect_obj instanceof WP_Post ) {
[787] Fix | Delete
$post_status_obj = get_post_status_object( get_post_status( $redirect_obj ) );
[788] Fix | Delete
/*
[789] Fix | Delete
* Unset the redirect object and URL if they are not readable by the user.
[790] Fix | Delete
* This condition is a little confusing as the condition needs to pass if
[791] Fix | Delete
* the post is not readable by the user. That's why there are ! (not) conditions
[792] Fix | Delete
* throughout.
[793] Fix | Delete
*/
[794] Fix | Delete
if (
[795] Fix | Delete
// Private post statuses only redirect if the user can read them.
[796] Fix | Delete
! (
[797] Fix | Delete
$post_status_obj->private &&
[798] Fix | Delete
current_user_can( 'read_post', $redirect_obj->ID )
[799] Fix | Delete
) &&
[800] Fix | Delete
// For other posts, only redirect if publicly viewable.
[801] Fix | Delete
! is_post_publicly_viewable( $redirect_obj )
[802] Fix | Delete
) {
[803] Fix | Delete
$redirect_obj = false;
[804] Fix | Delete
$redirect_url = false;
[805] Fix | Delete
}
[806] Fix | Delete
}
[807] Fix | Delete
[808] Fix | Delete
/**
[809] Fix | Delete
* Filters the canonical redirect URL.
[810] Fix | Delete
*
[811] Fix | Delete
* Returning false to this filter will cancel the redirect.
[812] Fix | Delete
*
[813] Fix | Delete
* @since 2.3.0
[814] Fix | Delete
*
[815] Fix | Delete
* @param string $redirect_url The redirect URL.
[816] Fix | Delete
* @param string $requested_url The requested URL.
[817] Fix | Delete
*/
[818] Fix | Delete
$redirect_url = apply_filters( 'redirect_canonical', $redirect_url, $requested_url );
[819] Fix | Delete
[820] Fix | Delete
// Yes, again -- in case the filter aborted the request.
[821] Fix | Delete
if ( ! $redirect_url || strip_fragment_from_url( $redirect_url ) === strip_fragment_from_url( $requested_url ) ) {
[822] Fix | Delete
return;
[823] Fix | Delete
}
[824] Fix | Delete
[825] Fix | Delete
if ( $do_redirect ) {
[826] Fix | Delete
// Protect against chained redirects.
[827] Fix | Delete
if ( ! redirect_canonical( $redirect_url, false ) ) {
[828] Fix | Delete
wp_redirect( $redirect_url, 301 );
[829] Fix | Delete
exit;
[830] Fix | Delete
} else {
[831] Fix | Delete
// Debug.
[832] Fix | Delete
// die("1: $redirect_url<br />2: " . redirect_canonical( $redirect_url, false ) );
[833] Fix | Delete
return;
[834] Fix | Delete
}
[835] Fix | Delete
} else {
[836] Fix | Delete
return $redirect_url;
[837] Fix | Delete
}
[838] Fix | Delete
}
[839] Fix | Delete
[840] Fix | Delete
/**
[841] Fix | Delete
* Removes arguments from a query string if they are not present in a URL
[842] Fix | Delete
* DO NOT use this in plugin code.
[843] Fix | Delete
*
[844] Fix | Delete
* @since 3.4.0
[845] Fix | Delete
* @access private
[846] Fix | Delete
*
[847] Fix | Delete
* @param string $query_string
[848] Fix | Delete
* @param array $args_to_check
[849] Fix | Delete
* @param string $url
[850] Fix | Delete
* @return string The altered query string
[851] Fix | Delete
*/
[852] Fix | Delete
function _remove_qs_args_if_not_in_url( $query_string, array $args_to_check, $url ) {
[853] Fix | Delete
$parsed_url = parse_url( $url );
[854] Fix | Delete
[855] Fix | Delete
if ( ! empty( $parsed_url['query'] ) ) {
[856] Fix | Delete
parse_str( $parsed_url['query'], $parsed_query );
[857] Fix | Delete
[858] Fix | Delete
foreach ( $args_to_check as $qv ) {
[859] Fix | Delete
if ( ! isset( $parsed_query[ $qv ] ) ) {
[860] Fix | Delete
$query_string = remove_query_arg( $qv, $query_string );
[861] Fix | Delete
}
[862] Fix | Delete
}
[863] Fix | Delete
} else {
[864] Fix | Delete
$query_string = remove_query_arg( $args_to_check, $query_string );
[865] Fix | Delete
}
[866] Fix | Delete
[867] Fix | Delete
return $query_string;
[868] Fix | Delete
}
[869] Fix | Delete
[870] Fix | Delete
/**
[871] Fix | Delete
* Strips the #fragment from a URL, if one is present.
[872] Fix | Delete
*
[873] Fix | Delete
* @since 4.4.0
[874] Fix | Delete
*
[875] Fix | Delete
* @param string $url The URL to strip.
[876] Fix | Delete
* @return string The altered URL.
[877] Fix | Delete
*/
[878] Fix | Delete
function strip_fragment_from_url( $url ) {
[879] Fix | Delete
$parsed_url = wp_parse_url( $url );
[880] Fix | Delete
[881] Fix | Delete
if ( ! empty( $parsed_url['host'] ) ) {
[882] Fix | Delete
$url = '';
[883] Fix | Delete
[884] Fix | Delete
if ( ! empty( $parsed_url['scheme'] ) ) {
[885] Fix | Delete
$url = $parsed_url['scheme'] . ':';
[886] Fix | Delete
}
[887] Fix | Delete
[888] Fix | Delete
$url .= '//' . $parsed_url['host'];
[889] Fix | Delete
[890] Fix | Delete
if ( ! empty( $parsed_url['port'] ) ) {
[891] Fix | Delete
$url .= ':' . $parsed_url['port'];
[892] Fix | Delete
}
[893] Fix | Delete
[894] Fix | Delete
if ( ! empty( $parsed_url['path'] ) ) {
[895] Fix | Delete
$url .= $parsed_url['path'];
[896] Fix | Delete
}
[897] Fix | Delete
[898] Fix | Delete
if ( ! empty( $parsed_url['query'] ) ) {
[899] Fix | Delete
$url .= '?' . $parsed_url['query'];
[900] Fix | Delete
}
[901] Fix | Delete
}
[902] Fix | Delete
[903] Fix | Delete
return $url;
[904] Fix | Delete
}
[905] Fix | Delete
[906] Fix | Delete
/**
[907] Fix | Delete
* Attempts to guess the correct URL for a 404 request based on query vars.
[908] Fix | Delete
*
[909] Fix | Delete
* @since 2.3.0
[910] Fix | Delete
*
[911] Fix | Delete
* @global wpdb $wpdb WordPress database abstraction object.
[912] Fix | Delete
*
[913] Fix | Delete
* @return string|false The correct URL if one is found. False on failure.
[914] Fix | Delete
*/
[915] Fix | Delete
function redirect_guess_404_permalink() {
[916] Fix | Delete
global $wpdb;
[917] Fix | Delete
[918] Fix | Delete
/**
[919] Fix | Delete
* Filters whether to attempt to guess a redirect URL for a 404 request.
[920] Fix | Delete
*
[921] Fix | Delete
* Returning a false value from the filter will disable the URL guessing
[922] Fix | Delete
* and return early without performing a redirect.
[923] Fix | Delete
*
[924] Fix | Delete
* @since 5.5.0
[925] Fix | Delete
*
[926] Fix | Delete
* @param bool $do_redirect_guess Whether to attempt to guess a redirect URL
[927] Fix | Delete
* for a 404 request. Default true.
[928] Fix | Delete
*/
[929] Fix | Delete
if ( false === apply_filters( 'do_redirect_guess_404_permalink', true ) ) {
[930] Fix | Delete
return false;
[931] Fix | Delete
}
[932] Fix | Delete
[933] Fix | Delete
/**
[934] Fix | Delete
* Short-circuits the redirect URL guessing for 404 requests.
[935] Fix | Delete
*
[936] Fix | Delete
* Returning a non-null value from the filter will effectively short-circuit
[937] Fix | Delete
* the URL guessing, returning the passed value instead.
[938] Fix | Delete
*
[939] Fix | Delete
* @since 5.5.0
[940] Fix | Delete
*
[941] Fix | Delete
* @param null|string|false $pre Whether to short-circuit guessing the redirect for a 404.
[942] Fix | Delete
* Default null to continue with the URL guessing.
[943] Fix | Delete
*/
[944] Fix | Delete
$pre = apply_filters( 'pre_redirect_guess_404_permalink', null );
[945] Fix | Delete
if ( null !== $pre ) {
[946] Fix | Delete
return $pre;
[947] Fix | Delete
}
[948] Fix | Delete
[949] Fix | Delete
if ( get_query_var( 'name' ) ) {
[950] Fix | Delete
$publicly_viewable_statuses = array_filter( get_post_stati(), 'is_post_status_viewable' );
[951] Fix | Delete
$publicly_viewable_post_types = array_filter( get_post_types( array( 'exclude_from_search' => false ) ), 'is_post_type_viewable' );
[952] Fix | Delete
[953] Fix | Delete
/**
[954] Fix | Delete
* Filters whether to perform a strict guess for a 404 redirect.
[955] Fix | Delete
*
[956] Fix | Delete
* Returning a truthy value from the filter will redirect only exact post_name matches.
[957] Fix | Delete
*
[958] Fix | Delete
* @since 5.5.0
[959] Fix | Delete
*
[960] Fix | Delete
* @param bool $strict_guess Whether to perform a strict guess. Default false (loose guess).
[961] Fix | Delete
*/
[962] Fix | Delete
$strict_guess = apply_filters( 'strict_redirect_guess_404_permalink', false );
[963] Fix | Delete
[964] Fix | Delete
if ( $strict_guess ) {
[965] Fix | Delete
$where = $wpdb->prepare( 'post_name = %s', get_query_var( 'name' ) );
[966] Fix | Delete
} else {
[967] Fix | Delete
$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );
[968] Fix | Delete
}
[969] Fix | Delete
[970] Fix | Delete
// If any of post_type, year, monthnum, or day are set, use them to refine the query.
[971] Fix | Delete
if ( get_query_var( 'post_type' ) ) {
[972] Fix | Delete
if ( is_array( get_query_var( 'post_type' ) ) ) {
[973] Fix | Delete
$post_types = array_intersect( get_query_var( 'post_type' ), $publicly_viewable_post_types );
[974] Fix | Delete
if ( empty( $post_types ) ) {
[975] Fix | Delete
return false;
[976] Fix | Delete
}
[977] Fix | Delete
$where .= " AND post_type IN ('" . join( "', '", esc_sql( get_query_var( 'post_type' ) ) ) . "')";
[978] Fix | Delete
} else {
[979] Fix | Delete
if ( ! in_array( get_query_var( 'post_type' ), $publicly_viewable_post_types, true ) ) {
[980] Fix | Delete
return false;
[981] Fix | Delete
}
[982] Fix | Delete
$where .= $wpdb->prepare( ' AND post_type = %s', get_query_var( 'post_type' ) );
[983] Fix | Delete
}
[984] Fix | Delete
} else {
[985] Fix | Delete
$where .= " AND post_type IN ('" . implode( "', '", esc_sql( $publicly_viewable_post_types ) ) . "')";
[986] Fix | Delete
}
[987] Fix | Delete
[988] Fix | Delete
if ( get_query_var( 'year' ) ) {
[989] Fix | Delete
$where .= $wpdb->prepare( ' AND YEAR(post_date) = %d', get_query_var( 'year' ) );
[990] Fix | Delete
}
[991] Fix | Delete
if ( get_query_var( 'monthnum' ) ) {
[992] Fix | Delete
$where .= $wpdb->prepare( ' AND MONTH(post_date) = %d', get_query_var( 'monthnum' ) );
[993] Fix | Delete
}
[994] Fix | Delete
if ( get_query_var( 'day' ) ) {
[995] Fix | Delete
$where .= $wpdb->prepare( ' AND DAYOFMONTH(post_date) = %d', get_query_var( 'day' ) );
[996] Fix | Delete
}
[997] Fix | Delete
[998] Fix | Delete
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function