Eliminar la redirección después de cambiar el slug de una página

8 abr 2015, 16:36:52
Vistas: 37.8K
Votos: 10

En una de mis páginas cambié el slug para formar una URL diferente. Por ejemplo:

Antigua: http://example.com/old-slug

Nueva: http://example.com/new-slug

WordPress ha hecho su trabajo de redirigir http://example.com/old-slug a http://example.com/new-slug.

Me gustaría eliminar este comportamiento ya que un plugin que estoy usando utiliza el slug en cuestión y la redirección anula su comportamiento.

Revisé esta pregunta, y verifiqué mi tabla wp_postmeta buscando instancias de _wp_old_slug pero no se encontró nada. Mi servidor es Nginx así que no debería verse afectado por archivos .htaccess.

¿Hay algo más que pueda hacer para eliminar esta redirección?

1
Comentarios

Parece extraño que tu tabla wp_postmeta no tenga ninguna clave _wp_old_slug - el fragmento de código que hace eso está en wp-includes/query.php (wp_old_slug_redirect()) - podrías agregar una declaración exit o de depuración allí para verificar si se está llamando. También recuerda que si WordPress no puede encontrar un enlace permanente, busca publicaciones que coincidan con el inicio, por ejemplo, si tuvieras una publicación llamada /foobar, entonces /foo redirigirá a ella.

William Turrell William Turrell
8 abr 2015 17:11:23
Todas las respuestas a la pregunta 5
3

Esto (en tu archivo functions.php) lo desactivará (pero mira también el comentario que he dejado):

remove_action('template_redirect', 'wp_old_slug_redirect');

Parece extraño que tu tabla wp_postmeta no tenga ninguna clave _wp_old_slug - el fragmento de código que hace eso está en wp-includes/query.php (wp_old_slug_redirect()) - podrías añadir un exit o una declaración de depuración allí para verificar si se está llamando.

También, recuerda que si WordPress no puede encontrar un enlace permanente, busca entradas con un comienzo coincidente, por ejemplo, si tuvieras una entrada con el enlace permanente /foobar, entonces /foo redirigirá a él.

8 abr 2015 17:14:30
Comentarios

¿Podrías agregar tu comentario en la respuesta para desarrollarla y tener todo el contenido en un solo lugar?

Howdy_McGee Howdy_McGee
8 abr 2015 17:16:55

De hecho, tu comentario fue la solución. Tengo una página llamada Events que tenía el slug events-page. Ninguna página tenía el slug events pero al visitar example.com/events redirigía a la página Events. WP obviamente estaba haciendo coincidir el slug con una página que tenía el mismo título ya que no existía nada más para ello.

harryg harryg
8 abr 2015 18:21:25

no funcionó para mí

zEn feeLo zEn feeLo
2 abr 2019 20:15:38
2

esto funcionó para mí:

   remove_filter('template_redirect', 'redirect_canonical');  

fuente: http://biostall.com/prevent-wordpress-redirecting-to-nearest-matching-url/

2 feb 2017 09:17:17
Comentarios

no funcionó para mí

zEn feeLo zEn feeLo
2 abr 2019 20:15:47

Es asombroso que WP tenga esto habilitado por defecto

111 111
24 feb 2020 00:40:56
3

Para eliminar manualmente las redirecciones automáticas después de un cambio de slug, simplemente borra las filas correspondientes de la tabla "wp-redirection-items" en la base de datos usando phpMyAdmin.

Esta es la mejor y más sencilla manera que te permite eliminar redirecciones para publicaciones específicas.

2 mar 2017 14:00:12
Comentarios

¿Cómo sabes que el OP está usando exactamente ese plugin?

fuxia fuxia
2 mar 2017 15:57:31

tu enlace no funciona

zEn feeLo zEn feeLo
2 abr 2019 20:16:10

Parece que no hay una tabla llamada wp-redirection-items

Flimm Flimm
20 may 2024 15:23:52
2

Cada publicación de WordPress tiene su propio slug, que se genera automáticamente a partir del título de la publicación. Si decides cambiar el slug de la publicación más tarde, WordPress recordará el antiguo y lo redirigirá al nuevo. Es posible evitar la redirección de slugs antiguos en WordPress eliminando un par de acciones del núcleo de WordPress con un pequeño fragmento de código.

Solo agrega el siguiente código al archivo functions.php de tu tema actual para evitar que WordPress redirija los slugs antiguos a los nuevos:

remove_action( 'template_redirect', 'wp_old_slug_redirect'); 
remove_action( 'post_updated',      'wp_check_for_changed_slugs', 12, 3 );
18 dic 2018 07:50:10
Comentarios

¿cómo afecta al SEO?

zEn feeLo zEn feeLo
2 abr 2019 19:54:47

Agregué estas líneas, no funciona

zEn feeLo zEn feeLo
2 abr 2019 19:58:03
2

Lo que me ayudó fue restablecer los enlaces permanentes. Simplemente ve a Ajustes -> Enlaces permanentes, selecciona predeterminado, haz clic en Guardar cambios. Luego elige tu estructura y haz clic en Guardar cambios nuevamente.

12 jun 2015 14:00:03
Comentarios

no funciona

zEn feeLo zEn feeLo
2 abr 2019 20:13:07

¡Esto solucionó mi problema! Gracias.

wlarcheveque wlarcheveque
4 abr 2022 22:05:35