web-dev-qa-db-fra.com

Supprimer la redirection après avoir modifié le slug d'une page

Sur une de mes pages, j'ai changé le slug pour former une URL différente. Par exemple.

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

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

WordPress a fait en sorte de rediriger http://example.com/old-slug vers http://example.com/new-slug .

Je voudrais supprimer ce comportement car un plugin que j'utilise utilise le slug en question et la redirection redéfinit son comportement.

J'ai vérifié cette question et vérifié dans ma table wp_postmeta les occurrences de _wp_old_slug mais rien n'est renvoyé. Mon serveur est Nginx, donc ne devrait pas être affecté par les fichiers .htaccess.

Y a-t-il autre chose que je puisse faire pour supprimer cette redirection?

3
harryg

Ceci (dans votre functions.php) l'éteindra (mais voyez aussi le commentaire que j'ai laissé):

remove_action('template_redirect', 'wp_old_slug_redirect');

Il semble étrange que votre table wp_postmeta ne contienne aucune clé _wp_old_slug - le bit de code utilisé est wp-includes/query.php (wp_old_slug_redirect ()) - vous pouvez y ajouter une instruction exit ou debug pour vérifier si elle est appelée.

N'oubliez pas non plus que si WordPress ne trouve pas de lien permanent, il recherche les publications dont le début correspond, par exemple. si vous avez publié un post avec permalink/foobar , alors/foo y redirigera.

5
William Turrell

cela a fonctionné pour moi:

   remove_filter('template_redirect', 'redirect_canonical');  

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

2
Faiyaz Alam

Pour supprimer manuellement les redirections automatiques après le changement de slug, supprimez simplement les lignes correspondantes des "éléments de redirection wp" de la base de données à l'aide de phpMyAdmin.

C'est la méthode la plus simple et la meilleure qui vous permet de supprimer les redirections pour des publications spécifiques. Plus de détails peuvent être trouvés ici http://couponnexus.com/remove-wordpress-redirects-changing-slug/

0
Lithin

Ce qui a aidé était la réinitialisation des permaliens. Il suffit d'aller à Settings -> Permalinks, choisir par défaut, appuyez sur Save Changes. Ensuite, choisissez votre structure et appuyez à nouveau sur Save Changes.

0
Kęstutis

Chaque publication WordPress a son propre slug, qui est automatiquement généré par le titre de votre publication. Si vous décidez de modifier le post slug ultérieurement, WordPress se souviendra de l’ancien et le redirigera vers le nouveau. Il est possible d’empêcher l’ancienne redirection de post slug dans WordPress en supprimant quelques actions de votre cœur WordPress avec un petit extrait.

Il suffit d’ajouter le code suivant au fichier functions.php de votre thème actuel pour empêcher WordPress de rediriger les anciens messages postaux vers les nouveaux:

remove_action( 'template_redirect', 'wp_old_slug_redirect'); 
remove_action( 'post_updated',      'wp_check_for_changed_slugs', 12, 3 );
0
Avinash Singh