Désactiver la saisie semi-automatique de l'URL Wordpress
-
-
Une solutiontestée quine désactivepastout le système d'URL canoniquemais désactive uniquement lapartie "deviner" de la saisie semi-automatiqueestprésentée [ici] (http://wordpress.stackexchange.com/a/144970/51898)A tested solution that does not disable the whole canonical URL system but only disables the autocomplete "guessing" part is outlined [here](http://wordpress.stackexchange.com/a/144970/51898)
- 0
- 2014-05-20
- Hauke P.
-
4 réponses
- votes
-
- 2013-03-24
Jepense que c'est lafonction
redirect_canonical
liée àtemplate_redirect
. Vous devriezpouvoir le désactiver avec:remove_filter ('template_redirect','redirect_canonical');
Mais vous devez vraiment vous demander si vous voulezfaire cela car c'est assez compliquéet remplit desfonctions SEOimportantes:
Redirige les liensentrants vers l'URL appropriéeen fonction de l'URL du site.
Lesmoteurs de recherche considèrent www.somedomain.comet somedomain.com comme deux URL différentes lorsqu'elles vonttoutes les deux aumêmeendroit. Ce référencement l'amélioration évite depénaliser le contenu dupliquéen redirigeant liensentrants vers l'un ou l'autre.
Empêche la redirection desflux,trackbacks,recherches,popup de commentaire, et les URL d'administrateur. Ne redirigepas sur lesnon-pretty-permalink-support IIS 7,aperçus depage/article,administrateur WP,rétroliens,robots.txt,recherches, ou sur les demandes POST.
Essaiera également detrouver le lien correct lorsqu'un utilisateur saisit une URL quin'existepas sur labase d'une requête WordPressexacte. Essayeraplutôt pour analyser l'URL ou la requête afin d'essayer detrouver labonnepage à aller à.
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13
Ce qui suit peut tuer l'auto-complétion sansjouer avec le composant SEO,maisje nepeuxpas lepromettre. Le codeest àpeine testé carje n'aijamais souhaité le désactiver. Je devrais vraiment étudier
redirect_canonical
pour être sûr detout.fonction kill_404_redirect_wpse_92103 () { if (is_404 ()) { add_action ('redirect_canonical','__ return_false'); } } add_action ('template_redirect','kill_404_redirect_wpse_92103',1);
I believe that is the
redirect_canonical
function hooked totemplate_redirect
. You should be able to disable it with:remove_filter('template_redirect', 'redirect_canonical');
But you should really think about whether you want to do that as it is fairly complicated and performs some important SEO functions:
Redirects incoming links to the proper URL based on the site url.
Search engines consider www.somedomain.com and somedomain.com to be two different URLs when they both go to the same location. This SEO enhancement prevents penalty for duplicate content by redirecting all incoming links to one or the other.
Prevents redirection for feeds, trackbacks, searches, comment popup, and admin URLs. Does not redirect on non-pretty-permalink-supporting IIS 7, page/post previews, WP admin, Trackbacks, robots.txt, searches, or on POST requests.
Will also attempt to find the correct link when a user enters a URL that does not exist based on exact WordPress query. Will instead try to parse the URL or query in an attempt to figure the correct page to go to.
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/canonical.php#L13
The following might kill the autocompletion without messing with the SEO component, but I can't promise that. The code is barely tested as I have never wished to disable this. I'd really have to study
redirect_canonical
to be sure of anything.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é cetextrait de code à lafin demonfichier/wp-includes/canonical.phpet les redirections seproduisenttoujours.Est-ce queje fais quelque chose demal?Quelqu'un d'autrene peutpas désactiver ce comportement?I added this code snippet to the end of my /wp-includes/canonical.php file and the redirects are still happening. Am I doing something wrong? Anyone else unable to disable this behaviour?
- 0
- 2019-06-04
- user1380540
-
@ user1380540 vousne modifiezpas lesfichiersprincipaux.celairait dans unthèmefunctions.php ou dans unplugin.@user1380540 you don't edit core files. this would go to a theme functions.php or to a plugin.
- 0
- 2020-07-16
- Michael Rogers
-
- 2014-07-28
Cela sembleterriblementirresponsable,que cette "estimation" seproduise automatiquement.Je seraisbeaucoupplus ouvert s'il y avait unmoyen de définir quelleest labonnepage vers laquelle aller.
J'ai denombreusespages qui sont construites comme une séquence,et cetteestimation automatique choisit àtort de répondre avec despages qui setrouvent (au hasard?) quelquepart dans la séquence,par opposition à lapage de départ.
MISE À JOUR: Il s'agit d'un comportement connu,et ilestenvisagéici: https://core.trac.wordpress.org/ticket/16557
This seems terribly irresponsible, to have this "guessing" occur automatically. I would be much more open to it if there were some means of defining which was the correct page to go to.
I have numerous pages that are built as a sequence, and this auto-guessing is incorrectly choosing to respond with pages that are (randomly?) somewhere in the sequence, as opposed to the starting page.
UPDATE: This is known behavior, and is being considered here: https://core.trac.wordpress.org/ticket/16557
-
- 2017-08-02
Suite à la réponse de FitPM,unplugin a été créépour désactiver le comportement de devinette automatique.
Celafonctionnebien pourmoi sur Wordpress 4.8 àpartir du 2 août 2017. Lepluginestici: https://wordpress.org/plugins/disable-url-autocorrect-guessing/
As a follow up to FitPM's answer - a plugin has been created that disables the auto-guessing behavior.
It works fine for me on Wordpress 4.8 as of August 2, 2017. The plugin is here: https://wordpress.org/plugins/disable-url-autocorrect-guessing/
-
- 2020-05-13
Unenote: si on désactive redirect_canonical (parexemple avec
remove_action('template_redirect', 'redirect_canonical');
),des liens aléatoires comme https://tld.com/some-random-string/blogpost fonctionne également (le contenu de https://tld.com/real-category-slug/blogpost s'affiche).Si vous voulez éviter celaet renvoyer 404 sur ces URL aléatoires,utilisez quelque chose comme
add_filter( 'redirect_canonical', function( $redirect_url ) { $url = 'http'.((isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off')?'s':'').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if( $redirect_url !== $url ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } return false; });
One note: If one disables redirect_canonical (e.g. with
remove_action('template_redirect', 'redirect_canonical');
), random links like https://tld.com/some-random-string/blogpost also work (the content of https://tld.com/real-category-slug/blogpost is shown).If you want to prevent that and return 404 on those random urls, use something like
add_filter( 'redirect_canonical', function( $redirect_url ) { $url = 'http'.((isset($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off')?'s':'').'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if( $redirect_url !== $url ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } return false; });
J'ai récemment remarqué que Wordpressessaie de compléter automatiquement une URL lorsqu'ellen'estpas soumise dans sonintégralité.Parexemple.J'ai une URL depublication qui ressemble à ceci:
Sije navigue vers l'URL suivante:
Jepeux voir que l'URLest soumise à Wordpressmais que Wordpresseffectue une redirection 301 vers
http://www.mysite.com/some-post-title
.Commentpuis-je désactiver ce comportement?