Disable ONLY URL auto complete, not the whole canonical URL system

Updated Answer (2020-10-29):

The solution has changed with WordPress 5.5. Keeping the old answer for reference below.

Short version: Get my pluign from here:
https://wordpress.org/plugins/disable-url-autocorrect-guessing/

Long Version:

With WordPress 5.5, you can control more precisely if/how the guessing should work. Refer to https://make.wordpress.org/core/2020/06/26/wordpress-5-5-better-fine-grained-control-of-redirect_guess_404_permalink/ for more information. To completely disable guessing, use this code:

add_filter( 'do_redirect_guess_404_permalink', '__return_false' );

If you add this to a new plugin php file (for example in wp-content/plugins/disable-url-autocorrect-guessing.php) you’ll have a nice plugin that you can activate to disable WordPress’ autocorrect “guessing” feature.

To save you the trouble to do this, I’ve updated my plugin; version 2.0 uses this oneliner now. You can get the plugin from here:
https://wordpress.org/plugins/disable-url-autocorrect-guessing/


Old answer (before 2020-10-29):

Okay, after searching a bit more I finally found an answer to my own question hidden in a comment of this feature request ticket: https://core.trac.wordpress.org/ticket/16557 The user nacin suggested to use this code:

function remove_redirect_guess_404_permalink( $redirect_url ) {
    if ( is_404() )
        return false;
    return $redirect_url;
}

add_filter( 'redirect_canonical', 'remove_redirect_guess_404_permalink' );

If you add this to a new plugin php file (for example in wp-content/plugins/disable-url-autocorrect-guessing.php) you’ll have a nice plugin that you can activate to disable WordPress’ autocorrect “guessing” feature.

In order to save you the trouble I actually did this and handed in my plugin at WordPress.org. Once it gets reviewed there, you should be able to download it here:
https://wordpress.org/plugins/disable-url-autocorrect-guessing/


While this is a working solution, the suggested code is somewhat of a hack. Once the feature request in https://core.trac.wordpress.org/ticket/16557 is actually implemented, there will be way better solutions for this as well as much better control over how the guessing should actually be performed.

Leave a Comment