Rimuovere il reindirizzamento dopo aver modificato lo slug di una pagina
In una delle mie pagine ho modificato lo slug per creare un URL diverso. Ad esempio:
Vecchio: http://example.com/old-slug
Nuovo: http://example.com/new-slug
WordPress ha fatto la sua cosa abituale reindirizzando http://example.com/old-slug a http://example.com/new-slug.
Vorrei rimuovere questo comportamento poiché un plugin che sto utilizzando fa uso dello slug in questione e il reindirizzamento ne sovrascrive il funzionamento.
Ho controllato questa domanda, e ho verificato nella mia tabella wp_postmeta
la presenza di _wp_old_slug
ma non viene restituito nulla. Il mio server è Nginx quindi non dovrebbe essere influenzato dai file .htaccess.
C'è qualcos'altro che posso fare per rimuovere questo reindirizzamento?

Questo (nel tuo functions.php
) lo disattiverà (ma vedi anche il commento che ho lasciato):
remove_action('template_redirect', 'wp_old_slug_redirect');
Sembra strano che la tua tabella wp_postmeta
non abbia alcuna chiave _wp_old_slug
- la parte di codice che gestisce questo si trova in wp-includes/query.php
(wp_old_slug_redirect()) - potresti aggiungere un'istruzione exit o di debug lì per verificare se viene chiamata.
Inoltre, ricorda che se WordPress non trova un permalink, cerca articoli con un inizio corrispondente, ad esempio se hai un articolo con permalink /foobar, allora /foo verrà reindirizzato ad esso.

Potresti aggiungere il tuo commento nella risposta per arricchirla e avere tutto il contenuto in un unico posto?

Infatti, il tuo commento era la soluzione. Ho una pagina chiamata Eventi
che aveva lo slug events-page
. Nessuna pagina aveva lo slug events
ma quando visitavo example.com/events
venivo reindirizzato alla pagina Eventi
. WP stava ovviamente facendo corrispondere lo slug a una pagina con lo stesso titolo poiché non esisteva altro per esso.

questo ha funzionato per me:
remove_filter('template_redirect', 'redirect_canonical');
fonte: http://biostall.com/prevent-wordpress-redirecting-to-nearest-matching-url/

Per rimuovere manualmente i reindirizzamenti automatici dopo la modifica dello slug, è sufficiente eliminare le righe corrispondenti dalla tabella "wp-redirection-items" del database utilizzando phpMyAdmin.
Questo è il metodo migliore e più semplice che ti consente di rimuovere i reindirizzamenti per post specifici.

Ogni articolo di WordPress ha il proprio slug, che viene generato automaticamente dal titolo del post. Se decidi di modificare lo slug del post in un secondo momento, WordPress ricorderà quello vecchio e lo reindirizzerà al nuovo. È possibile prevenire il reindirizzamento degli slug vecchi dei post in WordPress rimuovendo un paio di azioni dal core di WordPress con un piccolo snippet.
Aggiungi semplicemente il seguente codice al file functions.php del tuo tema corrente per impedire a WordPress di reindirizzare i vecchi slug dei post ai nuovi:
remove_action( 'template_redirect', 'wp_old_slug_redirect');
remove_action( 'post_updated', 'wp_check_for_changed_slugs', 12, 3 );
