Deshabilitar autocompletar URL de Wordpress


15

Hace poco noté que Wordpress intenta completar automáticamente una URL cuando no se envía en su totalidad. Por ejemplo, tengo una URL de publicación que se ve así:

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

Si busco la siguiente URL:

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

Puedo ver que la URL se envía a Wordpress pero que Wordpress está haciendo una redirección 301 http://www.mysite.com/some-post-title.

¿Cómo puedo deshabilitar este comportamiento?


Respuestas:


19

Creo que esa es la redirect_canonicalfunción enganchada template_redirect. Debería poder desactivarlo con:

remove_filter('template_redirect', 'redirect_canonical'); 

Pero realmente debería pensar si desea hacer eso, ya que es bastante complicado y realiza algunas funciones importantes de SEO:

Redirige los enlaces entrantes a la URL adecuada según la URL del sitio.

Los motores de búsqueda consideran que www.somedomain.com y somedomain.com son dos URL diferentes cuando ambos van a la misma ubicación. Esta mejora de SEO evita la penalización por contenido duplicado al redirigir todos los enlaces entrantes a uno u otro.

Evita la redirección de feeds, trackbacks, búsquedas, ventanas emergentes de comentarios y URL de administrador. No redirige en IIS 7 que no admite enlaces bonitos, vistas previas de página / publicación, administrador de WP, Trackbacks, robots.txt, búsquedas o en solicitudes POST.

También intentará encontrar el enlace correcto cuando un usuario ingrese una URL que no existe en base a una consulta exacta de WordPress. En su lugar, intentará analizar la URL o consulta en un intento de calcular la página correcta para ir.

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

Lo siguiente podría matar el autocompletado sin meterse con el componente SEO, pero no puedo prometer eso. El código apenas se prueba ya que nunca he deseado desactivar esto. Realmente tendría que estudiar redirect_canonicalpara estar seguro de algo.

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);

Agregué este fragmento de código al final de mi archivo /wp-includes/canonical.php y las redirecciones siguen ocurriendo. ¿Estoy haciendo algo mal? ¿Alguien más no puede desactivar este comportamiento?
user1380540

3

Esto parece terriblemente irresponsable, que esta "adivinanza" ocurra automáticamente. Estaría mucho más abierto si hubiera algún medio para definir cuál era la página correcta a la que ir.

Tengo numerosas páginas que se crean como una secuencia, y esta suposición automática está eligiendo responder incorrectamente con páginas que están (al azar?) En algún lugar de la secuencia, en lugar de la página de inicio.

ACTUALIZACIÓN: Este es un comportamiento conocido, y se está considerando aquí: https://core.trac.wordpress.org/ticket/16557


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.