Posiadając blog na WordPressie niekiedy chcemy wprowadzić parę kosmetycznych zmian i jedną z nich może być pozbycie się z adresu URL wpisu daty. Choć rozwiązanie wydaje się trywialne jeśli chodzi o dopiero co stworzone i niezaindeksowane strony to już dla większych serwisów cała modyfikacja nieco się komplikuje, ale powoli – zaraz wszystko wyjaśnię.
Nie będę rozbijał sposobów na nowe i stare strony i podam rozwiązanie, które zadziała w obu przypadkach i co najważniejsze do całej operacji nie użyjemy żadnej wtyczki. Wystarczy, że klikniemy w jedną opcję i skorzystamy z krótkiego kodu.
Usunięcie daty z adresu url
Najszybsza i najprzyjemniejsza część. Wystarczy wejść do Panelu WordPressa i wybrać tam z bocznego menu Ustawienia -> Bezpośrednie odnośniki. Zaglądamy teraz do części Popularne ustawienia, gdzie możemy wybrać już jedną z gotowych opcji. Z doświadczenia wiem, że najczęściej wybieraną jest Nazwa wpisu.
Zjeżdżamy nieco niżej i używając przycisku Zapisz zmiany zachowujemy nowy wygląd naszych linków. Od teraz nie będą one wyglądać tak:
ale tak:
Czyli cel osiągnięty?
Oczywiście korzystając z własnego formatu możemy poruszyć swoją wyobraźnią i o wiele mocniej pokombinować z adresami, ale tego rodzaju modyfikacje to temat na zupełnie inny poradnik.
Przekierowanie starych adresów na nowe
No dobrze, poradziliśmy sobie ze zmianą adresów, ale co w przypadku, gdy Google zaindeksowało już wszystkie stare i nowe wpisy, jest ich kilkanaście bądź kilkaset? Teraz użytkownicy, którzy znajdą nas w sieci i kliknął w stary adres zostaną pokierowani w przepaść, czyli na stronę z błędem 404 – bo przecież zmieniliśmy adresy i te strony tak naprawdę pod starymi adresami już nie istnieją.
Rozwiązaniem będzie przekierowanie 301 wszelkich wpisów z datą w url na adres nowy – bez daty. Dzięki temu zarówno wyszukiwarki jak i użytkownicy trafią dokładnie tam, gdzie my tego chcemy i gdzie oczywiście trafić powinni.
Oczywiście my użyjemy dziś przekierowania stworzonego w PHP z racji tego, że jest znacznie wydajniejsze i szybsze. Potrzebny będzie Wam klient FTP i połączenie z serwerem, na którym stoi Wasz WordPress. Wchodzimy do katalogu głównego strony, gdzie wyszukujemy plik index.php. Otwieramy go w dowolnym edytorze tekstowym i na początku pliku, tuż po otwarciu znacznika <?php w kolejnej linii wklejamy kod jak poniżej:
if (preg_match("#^/index\.php/[0-9]{4}/[0-9]{2}/[0-9]{2}/(.*)$#", $_SERVER['REQUEST_URI'], $q)) { header('HTTP/1.1 301 Moved Permanently'); header('Location: http://'.$_SERVER['HTTP_HOST'].'/'.($q[1])); die(); }
Plik zapisujemy i gotowe. Ale pamiętajmy, aby zmienić przed tym procesem strukturę linków w ustawieniach WordPressa, dokładnie na taką samą jaką opisywałem na początku artykułu.
Mam nadzieje, że nikt z Was nie będzie miał problemów z implementacją kodu czy innymi zmianami, o których wspomniałem wyżej. Cały kod jest uniwersalny i będzie pasował do każdej domeny, ale pamiętajcie, że jest kompatybilny jedynie ze zmianą adresów z:
na:
U mnie ten sposób nie działa. Może coś się od tego czasu zmieniło. Jeśli tak prosiłbym o update tekstu…
Dzięki. Mam ten sam problem. Będę dzisiaj walczyć.
Można też dodać specjalny kod RewriteRule w pliku .htaccess, który będzie przekierowywał na nowy link bezpośredni.
U mnie też nie działa. Na pewno chodzi o plik index.php? Do tej pory z tego typu zmianami spotykałam się w pliku functions.php