Pare o Wordpress de redirecionamentos "adivinhando" para URLs inexistentes

4

O Wordpress às vezes "adivinha" um redirecionamento para um slug de página inexistente se o slug estiver no início de outro URL. Após algumas pesquisas, minha hipótese é que essa parte da funcionalidade de redirecionamento canônico, que pode ser desativada usando este código:

remove_filter('template_redirect', 'redirect_canonical'); 

No entanto, gosto da ideia de redirecionamento canônico e prefiro não desativá-lo totalmente. Existe uma maneira de desativar apenas a lesma "adivinhação"? Eu preferiria um 404 sobre um 301 incorreto.

    
por supertrue 09.09.2011 / 00:08

1 resposta

4

É um pouco hacky, mas isso deve funcionar:

function no_redirect_guess_404_permalink( $header ){
    global $wp_query;

    if( is_404() )
        unset( $wp_query->query_vars['name'] );

    return $header;
}

add_filter( 'status_header', 'no_redirect_guess_404_permalink' );
    
por postpostmodern 09.09.2011 / 01:11

Tags