Is Auto Post recognition a WordPress feature? How to turn it off?

This is done by redirect_guess_404_permalink(), which is called from redirect_canonical(). redirect_canonical() does more than just this: it makes sure you are always using a single canonical URL for an item, it will add slashes, force the same domain name, …

You can either unhook redirect_canoncial so it does nothing, or you can hook into it and prevent redirection when it is a 404:

// Disable redirect_canonical()
add_action( 'init', 'wpse18110_init' );
function wpse18110_init()
{
    remove_action( 'template_redirect', 'redirect_canonical' );
}

// Only prevent redirect on 404
add_filter( 'redirect_canonical', 'wpse18110_redirect_canonical' );
function wpse18110_redirect_canonical( $redirect_url )
{
    if ( is_404() ) {
        return false;
    }
    return $redirect_url;
}

Leave a Comment