Na wielu stronach działających w oparciu o skrypt WordPress można zauważyć adresy kategorii, które są w postaci /strona/nazwakategorii. Jak wiecie, WordPress domyślnie używa formatu /strona/category/nazwakategorii lub nazwy własnej pokroju /strona/kategoria/nazwakategorii. Linki w takim formacie nie wyglądają zachęcająco, w szczególności, gdy znajdują się w głównym menu nawigacji. Na szczęście można to zmienić. Jak tego dokonać?
Sposobów jest wiele, można wykorzystać .htaccess, napisać własną funkcję wykorzystującą wp-rewrite lub posłużyć się wtyczkami. Ostatnie rozwiązanie jest proste i nie wymaga od użytkownika wiedzy programistycznej. A zatem, przystępujemy do usunięcia nazwy kategorii.
Usunięcie aliasu kategorii z wykorzystaniem dodatków Redirection i Decategorizer
Pobieramy następujące wtyczki:
- Redirection – dodatek odpowiedzialny za zarządzanie przekierowaniami 301 oraz śledzeniem błędów 404.
- Decategorizer – automatycznie usuwa z linków nazwę kategorii i dodaje przekierowania 301.
- Rozpakowujemy wtyczki dowolnym archiwizatorem i przesyłamy na serwer do katalogu wp-content\plugins.
- W panelu administratorskim przechodzimy do Wtyczki i włączamy dodatek Redirection (Włącz/Aktywuj).
- Dodajemy nowe przekierowanie, przechodzimy do Narzędzia => Przekierowanie i w polu Źródłowy URL wpisujemy nazwę kategorii jaką zdefiniowaliśmy (odczytujemy z Ustawienia => Bezpośrednie odnośniki => Opcjonalne => Alias kategorii, puste pole oznacza domyślny alias – category). Pole Docelowy URL pozostawiamy puste, klikamy Dodaj przekierowanie.
- Ponownie przechodzimy do sekcji Wtyczki i włączamy dodatek Decategorizer.
- Po wykonaniu wszystkich czynności nazwy kategorii z adresu URL zostaną usunięte.
Usunięcie aliasu kategorii przy pomocy WP No Category Base
Alternatywą dla dodatku Decategorizer jest WP No Category Base. Wtyczka nie wymaga dodatkowej konfiguracji, proces usuwania aliasu kategorii z linku jest całkowicie zautomatyzowany.
- Pobieramy wtyczkę, rozpakowujemy i przesyłamy na serwer do katalogu wp-content\plugins.
- Włączamy wtyczkę w panelu administratora, Wtyczki => WP No Category Base => Aktywuj
- Cieszymy się z nowych adresów 😉
Obydwie metody zostały przetestowane na wersji 3.0.1, podczas gruntownych testów nie zauważyłem jakichkolwiek błędów.
a co jeśli mamy taką samą nazwę strony statycznej i kategorii?
Ja miałem taką sytuację, że miałem takie same nazwy i pierwszeństwo miała strona statyczna. Po jakiejś aktualizacji się to zmieniło i musiałem zrezygnować z no category base, bo na „stronie statycznej” miałem listę wpisów.
Takiej sytuacji jeszcze nie miałem więc nie mogę odpowiedzieć jak to jest w przypadku takich samych kategorii i stron, natomiast nie sądzę aby w Twoim przypadku nie dało się tego „naprawić” np. modyfikując jeden z adresów a następnie stosując odpowiednie przekierowanie, aby zachować link juice. Chociaż to jest dziwne bo każda statyczna strona jest unikalna, podobnie jak i wpisy więc bez problemu powinno dać się ustawić targetowanie na konkretną stronę lub kategorię. Dotychczas z moich obserwacji wynikało, że taka sytuacja jest niemożliwa, jednak człowiek ciągle się uczy. Jak w przyszłości będę miał podobny problem z chęcią opiszę go na łamach serwisu.
Bardzo dziękuję za cenną uwagę.
Osobiście wystarczają mi możliwości, które oferuje fabryczny WP 😉 Odpowiednio dobrane kategorie na pewno wpływają pozytywnie z pkt. widzenia SEO, a i nazwę bez-kategorii można zmienić. Osobiście mam ustawiony własny format /%category%/%postname%/ jako bezpośrednie odnośniki, a i alias kategorii mam przyjazny 😉
Pozdrawiam!
Twój schemat nie powoduje usunięcia kategorii z adresu URL, wręcz przeciwnie, nakazuje jego stosowanie. Z poziomu interfejsu czystego WP nie da się przeprowadzić operacji usuwania, chyba że zastosujemy wtyczkę.
A ja nie mogę się uporać z wyrzuceniem „index.php” z nazwy linku do artykułu. Wprowadziłem oczywiście własny format %postname% ale wyrzuca 404. Dodam, że .htacsess i zmiana chmodów nic nie zmieniają.