Eliminar la redirección después de cambiar el slug de una página
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?

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.

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

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.

esto funcionó para mí:
remove_filter('template_redirect', 'redirect_canonical');
fuente: http://biostall.com/prevent-wordpress-redirecting-to-nearest-matching-url/

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.

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