Desativar a conclusão automática do URL do Wordpress

15

Recentemente, notei que o Wordpress tenta preencher automaticamente um URL quando ele não é enviado na íntegra. Por exemplo, eu tenho um URL de postagem que se parece com isso:

http://www.mysite.com/some-post-title

Se eu procurar o seguinte URL:

http://www.mysite.com/some-post-ti

Eu posso ver que a URL é enviada ao Wordpress, mas que o Wordpress está fazendo um redirecionamento 301 http://www.mysite.com/some-post-title.

Como posso desativar esse comportamento?

Lucas
fonte
A solução testada que não desativar todo o sistema URL canônica mas apenas desativa o autocomplete "adivinhar" parte é descrito aqui
Hauke P.

Respostas:

19

Acredito que essa é a redirect_canonicalfunção em que você está template_redirect. Você deve poder desabilitá-lo com:

remove_filter('template_redirect', 'redirect_canonical'); 

Mas você deve realmente pensar se deseja fazer isso, pois é bastante complicado e executa algumas funções importantes de SEO:

Redireciona os links recebidos para o URL apropriado com base no URL do site.

Os mecanismos de pesquisa consideram www.somedomain.com e somedomain.com como dois URLs diferentes quando ambos vão para o mesmo local. Esse aprimoramento de SEO evita penalidades por conteúdo duplicado, redirecionando todos os links recebidos para um ou outro.

Impede o redirecionamento de feeds, trackbacks, pesquisas, pop-up de comentários e URLs de administrador. Não redireciona no IIS 7, visualizações de página / publicação não suportadas pelo suporte permanente, administrador do WP, Trackbacks, robots.txt, pesquisas ou solicitações POST.

Também tentará encontrar o link correto quando um usuário digitar um URL que não existe com base na consulta exata do WordPress. Em vez disso, tentará analisar o URL ou a consulta na tentativa de descobrir a página correta para a qual acessar.

http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13

O seguinte pode eliminar o preenchimento automático sem mexer no componente SEO, mas não posso prometer isso. O código mal foi testado, pois nunca desejei desabilitar isso. Eu realmente teria que estudar redirect_canonicalpara ter certeza de qualquer coisa.

function kill_404_redirect_wpse_92103() {
  if (is_404()) {
   add_action('redirect_canonical','__return_false');
  }
}
add_action('template_redirect','kill_404_redirect_wpse_92103',1);
s_ha_dum
fonte
Adicionei esse trecho de código ao final do meu arquivo /wp-includes/canonical.php e os redirecionamentos ainda estão acontecendo. Estou fazendo algo errado? Mais alguém incapaz de desativar esse comportamento?
user1380540
3

Isso parece terrivelmente irresponsável, para que essa "adivinhação" ocorra automaticamente. Eu ficaria muito mais aberto a isso se houvesse algum meio de definir qual a página correta a ser acessada.

Eu tenho várias páginas criadas como uma sequência, e essa suposição automática está incorretamente escolhendo responder com páginas que estão (aleatoriamente?) Em algum lugar da sequência, em oposição à página inicial.

ATUALIZAÇÃO: Esse é um comportamento conhecido e está sendo considerado aqui: https://core.trac.wordpress.org/ticket/16557

FitPM
fonte