Désactiver la saisie automatique d'URL Wordpress


15

J'ai récemment remarqué que Wordpress tente de compléter automatiquement une URL lorsqu'elle n'est pas soumise dans son intégralité. Par exemple, j'ai une URL de publication qui ressemble à ceci:

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

Si je navigue jusqu'à l'URL suivante:

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

Je peux voir que l'URL est soumise à Wordpress mais que Wordpress fait une redirection 301 vers http://www.mysite.com/some-post-title.

Comment puis-je désactiver ce comportement?


Une solution testée qui ne désactive pas l'intégralité du système d'URL canonique mais désactive uniquement la partie "deviner" de saisie semi-automatique est décrite ici
Hauke ​​P.

Réponses:


19

Je crois que c'est la redirect_canonicalfonction à laquelle il est accroché template_redirect. Vous devriez pouvoir le désactiver avec:

remove_filter('template_redirect', 'redirect_canonical'); 

Mais vous devez vraiment vous demander si vous voulez le faire car c'est assez compliqué et remplit certaines fonctions SEO importantes:

Redirige les liens entrants vers l'URL appropriée en fonction de l'URL du site.

Les moteurs de recherche considèrent www.somedomain.com et somedomain.com comme deux URL différentes lorsqu'ils se dirigent tous deux vers le même emplacement. Cette amélioration SEO empêche la pénalité pour le contenu en double en redirigeant tous les liens entrants vers l'un ou l'autre.

Empêche la redirection des flux, des rétroliens, des recherches, des fenêtres contextuelles des commentaires et des URL d'administration. Ne redirige pas sur IIS 7 non compatible avec les permaliens, les aperçus de page / publication, WP Admin, Trackbacks, robots.txt, les recherches ou les requêtes POST.

Tentera également de trouver le lien correct lorsqu'un utilisateur entre une URL qui n'existe pas sur la base d'une requête WordPress exacte. A la place, essaiera d'analyser l'URL ou la requête pour essayer de trouver la bonne page.

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

Ce qui suit peut tuer l'auto-complétion sans jouer avec le composant SEO, mais je ne peux pas le promettre. Le code est à peine testé car je n'ai jamais souhaité le désactiver. Il faudrait vraiment que j'étudie redirect_canonicalpour être sûr de quoi que ce soit.

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

J'ai ajouté cet extrait de code à la fin de mon fichier /wp-includes/canonical.php et les redirections sont toujours en cours. Est-ce que je fais quelque chose de mal? Quelqu'un d'autre ne peut pas désactiver ce comportement?
user1380540

3

Cela semble terriblement irresponsable, que cette «devinette» se produise automatiquement. Je serais beaucoup plus ouvert à cela s'il existait un moyen de définir la bonne page à consulter.

J'ai de nombreuses pages qui sont construites comme une séquence, et cette auto-supposition choisit incorrectement de répondre avec des pages qui se trouvent (au hasard?) Quelque part dans la séquence, par opposition à la page de départ.

MISE À JOUR: Ceci est un comportement connu et est considéré ici: https://core.trac.wordpress.org/ticket/16557


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.