Disabilita il completamento automatico dell'URL di Wordpress


15

Di recente ho notato che Wordpress tenta di completare automaticamente un URL quando non è inviato nella sua interezza. Ad esempio, ho un URL post simile al seguente:

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

Se cerco il seguente URL:

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

Vedo che l'URL viene inviato a Wordpress ma che Wordpress sta eseguendo un reindirizzamento 301 a http://www.mysite.com/some-post-title.

Come posso disabilitare questo comportamento?


Una soluzione testata che non disabilita l'intero sistema URL canonico ma disabilita solo la parte "indovinando" del completamento automatico è delineata qui
Hauke ​​P.

Risposte:


19

Credo che sia la redirect_canonicalfunzione agganciata template_redirect. Dovresti essere in grado di disabilitarlo con:

remove_filter('template_redirect', 'redirect_canonical'); 

Ma dovresti davvero pensare se vuoi farlo poiché è abbastanza complicato e svolge alcune importanti funzioni SEO:

Reindirizza i collegamenti in entrata all'URL corretto in base all'URL del sito.

I motori di ricerca considerano www.somedomain.com e somedomain.com come due URL diversi quando entrambi vanno nella stessa posizione. Questo miglioramento SEO previene la penalità per i contenuti duplicati reindirizzando tutti i collegamenti in entrata verso l'uno o l'altro.

Impedisce il reindirizzamento per feed, trackback, ricerche, popup dei commenti e URL di amministrazione. Non reindirizza su IIS 7 che non supporta abbastanza permalink, anteprime di pagine / post, amministrazione WP, trackback, robots.txt, ricerche o richieste POST.

Tenterà inoltre di trovare il collegamento corretto quando un utente immette un URL che non esiste in base alla query WordPress esatta. Tenterà invece di analizzare l'URL o la query nel tentativo di individuare la pagina corretta a cui accedere.

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

Quanto segue potrebbe uccidere il completamento automatico senza scherzare con il componente SEO, ma non posso prometterlo. Il codice è appena testato poiché non ho mai desiderato disabilitarlo. Dovrei davvero studiare redirect_canonicalper essere sicuro di qualsiasi cosa.

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

Ho aggiunto questo frammento di codice alla fine del mio file /wp-includes/canonical.php e i reindirizzamenti continuano a verificarsi. Sto facendo qualcosa di sbagliato? Qualcun altro in grado di disabilitare questo comportamento?
user1380540

3

Sembra terribilmente irresponsabile che questa "supposizione" avvenga automaticamente. Sarei molto più aperto se ci fossero dei mezzi per definire quale fosse la pagina corretta da visitare.

Ho numerose pagine che sono costruite come una sequenza e questa supposizione automatica sta scegliendo erroneamente di rispondere con pagine che sono (casualmente?) Da qualche parte nella sequenza, a differenza della pagina iniziale.

AGGIORNAMENTO: si tratta di un comportamento noto che viene preso in considerazione qui: https://core.trac.wordpress.org/ticket/16557


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.