Eliminarea redirecționării după modificarea slug-ului unei pagini

8 apr. 2015, 16:36:52
Vizualizări: 37.8K
Voturi: 10

Pe una dintre paginile mele am schimbat slug-ul pentru a forma un URL diferit. De exemplu:

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

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

WordPress și-a făcut treaba sa de a redirecționa http://example.com/old-slug către http://example.com/new-slug.

Aș dori să elimin acest comportament deoarece un plugin pe care îl folosesc utilizează slug-ul în cauză, iar redirecționarea îi suprascrie funcționalitatea.

Am verificat această întrebare și am căutat în tabela wp_postmeta instanțe ale _wp_old_slug dar nu s-a returnat nimic. Serverul meu este Nginx așa că nu ar trebui să fie afectat de fișierele .htaccess.

Mai există altceva ce pot face pentru a elimina această redirecționare?

1
Comentarii

Pare ciudat că tabelul tău wp_postmeta nu ar avea nicio cheie _wp_old_slug - fragmentul de cod care face asta se află în wp-includes/query.php (wp_old_slug_redirect()) - ai putea adăuga o instrucțiune exit sau debug acolo pentru a verifica dacă este apelat. De asemenea, reține că dacă WordPress nu găsește un permalink, caută postări care se potrivesc cu începutul, de exemplu dacă ai avut o postare numită /foobar, atunci /foo va redirecționa către ea.

William Turrell William Turrell
8 apr. 2015 17:11:23
Toate răspunsurile la întrebare 5
3

Aceasta (în fișierul tău functions.php) va dezactiva funcționalitatea (dar vezi și comentariul pe care l-am lăsat):

remove_action('template_redirect', 'wp_old_slug_redirect');

Pare ciudat ca tabela ta wp_postmeta să nu aibă nicio cheie _wp_old_slug - bucata de cod care face asta se află în wp-includes/query.php (wp_old_slug_redirect()) - ai putea adăuga o instrucțiune exit sau de depanare acolo pentru a verifica dacă este apelată.

De asemenea, reține că dacă WordPress nu poate găsi un permalink, caută postări cu o porțiune care se potrivește, de exemplu dacă ai o postare cu permalinkul /foobar, atunci /foo va redirecționa către ea.

8 apr. 2015 17:14:30
Comentarii

Ai putea adăuga comentariul tău în răspuns doar pentru a-l completa și a avea tot conținutul într-un singur loc?

Howdy_McGee Howdy_McGee
8 apr. 2015 17:16:55

Într-adevăr, comentariul tău a fost soluția. Am o pagină numită Evenimente care avea slug-ul events-page. Nicio pagină nu avea slug-ul events, dar când vizitam example.com/events redirecționa către pagina Evenimente. WP evident că potrivea slug-ul cu o pagină care avea același titlu, deoarece nu exista altceva pentru acesta.

harryg harryg
8 apr. 2015 18:21:25

nu a funcționat pentru mine

zEn feeLo zEn feeLo
2 apr. 2019 20:15:38
2

acest lucru a funcționat pentru mine:

   remove_filter('template_redirect', 'redirect_canonical');  

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

2 feb. 2017 09:17:17
Comentarii

nu a funcționat pentru mine

zEn feeLo zEn feeLo
2 apr. 2019 20:15:47

Uimitor că WP ar avea această funcționalitate activată implicit

111 111
24 feb. 2020 00:40:56
3

Pentru a elimina manual redirecționările automate după schimbarea slug-ului, pur și simplu ștergeți rândurile corespunzătoare din tabelul "wp-redirection-items" din baza de date folosind phpMyAdmin.

Aceasta este cea mai bună și simplă metodă care vă permite să eliminați redirecționările pentru anumite articole.

2 mar. 2017 14:00:12
Comentarii

Cum știi că OP folosește exact acel plugin?

fuxia fuxia
2 mar. 2017 15:57:31

linkul tău nu funcționează

zEn feeLo zEn feeLo
2 apr. 2019 20:16:10

Se pare că nu există o tabelă numită wp-redirection-items

Flimm Flimm
20 mai 2024 15:23:52
2

Fiecare articol WordPress are propriul său slug, care este generat automat pe baza titlului articolului. Dacă decideți să modificați slug-ul ulterior, WordPress va ține minte versiunea veche și o va redirecționa către cea nouă. Este posibil să preveniți redirecționarea slug-urilor vechi în WordPress prin eliminarea a câteva acțiuni din nucleul WordPress folosind un mic fragment de cod.

Adăugați următorul cod în fișierul functions.php al temei curente pentru a preveni WordPress să redirecționeze slug-urile vechi către cele noi:

remove_action( 'template_redirect', 'wp_old_slug_redirect'); 
remove_action( 'post_updated',      'wp_check_for_changed_slugs', 12, 3 );
18 dec. 2018 07:50:10
Comentarii

cum afectează SEO-ul?

zEn feeLo zEn feeLo
2 apr. 2019 19:54:47

Am adăugat aceste linii, dar nu funcționează

zEn feeLo zEn feeLo
2 apr. 2019 19:58:03
2

Ceea ce m-a ajutat a fost resetarea legăturilor permanente. Pur și simplu mergi la Setări -> Legături permanente, alege opțiunea implicită, apasă pe Salvează modificările. Apoi selectează structura dorită și apasă din nou pe Salvează modificările.

12 iun. 2015 14:00:03
Comentarii

nu funcționeazăăăă

zEn feeLo zEn feeLo
2 apr. 2019 20:13:07

Asta a funcționat pentru mine! Mulțumesc.

wlarcheveque wlarcheveque
4 apr. 2022 22:05:35