Last Updated 19 days ago
Po zainstalowaniu PShowBlog moduł Google Sitemap przestał generować mapę witryny (błąd o brakującym parametrze „id"). Jak to naprawić?
**Objaw**Generowanie mapy witryny w module Google Sitemap kończy się błędem o brakującym wymaganym parametrze dla trasy podstrony bloga, na przykład:
Dispatcher::createUrl() miss required parameter "id" for route "module-pshowblog-category"
Po wystąpieniu błędu adres pliku mapy witryny zwraca 404.
**Przyczyna**
PrestaShop udostępnia podstrony modułów jako strony konfigurowalne w sekcji "SEO i adresy URL". Moduł Google Sitemap pobiera wszystkie takie strony i buduje dla nich adresy bez przekazania parametrów trasy. Adresy kategorii, wpisów, tagów i autorów bloga wymagają identyfikatora, więc próba zbudowania adresu bez niego przerywa całe generowanie mapy witryny.
Ponieważ moduł Google Sitemap kasuje poprzednie pliki przed utworzeniem nowych, w sklepie nie zostaje wówczas żadna aktualna mapa witryny i jej adres zwraca 404.
**Rozwiązanie w back office**
1. Otwórz konfigurację modułu Google Sitemap i na liście stron wykluczanych z mapy witryny ("Wskaż strony, których nie chcesz zawierać w plikach mapy witryny") zaznacz wszystkie pozycje zaczynające się od module-, a następnie uruchom generowanie mapy witryny przyciskiem generowania.
Warto zaznaczyć wszystkie pozycje module-, a nie tylko te od bloga. Ten sam błąd wywołuje każdy zainstalowany moduł, który rejestruje własne adresy z parametrem, a komunikat wygląda wtedy niemal identycznie i różni się jedynie nazwą trasy.
2. Wariant równoważny i trwalszy: w sekcji "SEO i adresy URL" usuń wpisy dla stron zaczynających się od module-. Adresy bloga nie są z nich pobierane, pochodzą z ustawień modułu, więc ich usunięcie nie zmienia adresów w sklepie. Jeżeli jednak przy którymś wpisie uzupełniono pole przepisanego adresu, usunięcie tego wpisu zmieni adres danej podstrony, dlatego usuwaj wyłącznie wpisy z pustym przepisanym adresem.
**Jeżeli błąd występuje nadal po wykluczeniu**
Najczęstsza przyczyna to niekompletna lista zaznaczeń. Generowanie zatrzymuje się na pierwszej problematycznej pozycji, więc w komunikacie widoczna jest tylko ona, a pozostałe ujawniają się dopiero przy kolejnej próbie.
Nazwa brakującego parametru w komunikacie wskazuje, o którą podstronę bloga chodzi:
- "id" - kategoria bloga (module-pshowblog-category)
- "id_entry" - wpis (module-pshowblog-entry)
- "tag" - tag (module-pshowblog-tag)
- "id" dla trasy module-pshowblog-author - autor (pozycja występuje tylko w nowszych wersjach modułu)
Jeżeli nazwa trasy w komunikacie nie zaczyna się od module-pshowblog-, to znaczy, że podstrony bloga zostały już pominięte, a generowanie zatrzymuje się na innym module. Wtedy należy wykluczyć również jego pozycje.
Pozycje te zwykle mają pusty tytuł, więc na liście wykluczeń widoczna jest wyłącznie nazwa strony w nawiasie kwadratowym, bez opisu. Łatwo je z tego powodu pominąć podczas przeglądania listy.
**Czego to nie naprawia**
Aktualizacja modułu Google Sitemap do nowszej wersji nie zmienia tego zachowania, ponieważ adresy budowane są tam tak samo. Nie pomaga też wyłączenie przyjaznych adresów URL, bo adresy podstron modułów są przetwarzane niezależnie od tego ustawienia.
**Warto sprawdzić przy okazji**
W sekcji "SEO i adresy URL" mogą znajdować się także pozycje zaczynające się od module- i wskazujące na moduły, których w sklepie już nie ma. One również trafiają do mapy witryny jako nieistniejące adresy. Takie nieaktualne wpisy można usunąć.</answer>
</invoke>