Działania SEO na WordPress co warto wiedzieć?

3 min czytania
Działania SEO na WordPress  co warto wiedzieć?

Od lat zdecydowanie najpopularniejszym systemem CMS jest WordPress. Bezpłatny dostęp, ciągły rozwój, ogromna liczba darmowych wtyczek i motywów, oraz społeczność, dzięki której można łatwo rozwiązać każdy problem związany z tym oprogramowaniem, sprawiają, że zainteresowanie tym CMS-em ciągle rośnie. Czy WordPress jest jednak dopracowany pod względem SEO? A może wymaga szerokiej optymalizacji?

Czym jest WordPress?

WordPress to system CMS, który powstał z myślą o blogerach. Z czasem okazało się, że sprawdza się również jako oprogramowanie serwisów informacyjnych, forów, katalogów stron, a nawet sklepów internetowych. W bazie WP dostępnych jest ponad 60 tys. pluginów, dzięki którym można uzyskać mnóstwo funkcji bez konieczności inwestowania w nowe rozwiązania.

Pierwsze wydanie systemu pojawiło się w 2003 roku. Od tamtej pory WordPress przeszedł wiele aktualizacji. Według w3techs.com w styczniu 2023 roku miał ponad 43% udziału w rynku systemów CMS, uwzględniając wszystkie strony www. Jeśli weźmiemy pod uwagę wyłącznie witryny, które bazują na CMS-ie, to udział rośnie do ponad 63%. Jak widzisz, WP jest zdecydowanym liderem.

Wiesz już, co to jest WordPress. Dowiedz się, czy to system dopracowany pod względem SEO, który zapewnia wszystkie rozwiązania potrzebne do optymalizacji strony.

Wtyczka SEO Yoast

Pozycjonowanie stron opartych na systemie WordPress wymaga skorzystania z dodatkowych pluginów, gdyż nie wszystkie opcje, których potrzebujesz, znajdziesz w podstawowej wersji CMS-a. Możesz postawić na różne wtyczki, w tym jedną z najpopularniejszych Yoast SEO. Liczba aktywnych instalacji, w połowie stycznia 2023 roku, wyniosła ponad 5 milionów. Podstawowa wersja jest bezpłatna, ale możesz też skorzystać z płatnej, dającej więcej możliwości. Yoast SEO umożliwia Ci:

  • łatwe wygenerowanie mapy strony , którą dodasz w Google Search Console.
  • personalizację tytułów i opisów poszczególnych stron tagi i <description>. Pierwszy z nich ma duży wpływ na widoczność w Google, zaś drugi może pojawiać się w wyszukiwarce i wpływać na klikalność;</li> <li><strong>analizę treści pod kątem SEO</strong> wtyczka sprawdza, czy content jest odpowiednio zoptymalizowany i zawiera niezbędne elementy;</li> <li><strong>automatyczne włączenie danych strukturalnych</strong> dzięki temu roboty Google mogą lepiej zrozumieć stronę. To dzięki nim w wynikach mogą pojawić się m.in. ceny produktów z Twojego serwisu, stan magazynowy czy też gwiazdki, które wynikają ze średniej oceny produktu/materiału.</li> </ul> <p>Więcej funkcji zapewnia odpłatna wersja Yoast SEO. Pozycjonowanie strony opartej na WordPress jest łatwiejsze dzięki takim wtycztom. Nie musisz zlecać przygotowania rozwiązań specjalnie dla Ciebie możesz skorzystać z gotowych.</p> <h2 id="korzyści-seo-dla-strony-zbudowanej-na-wordpress"><strong>Korzyści SEO dla strony zbudowanej na WordPress</strong></h2> <p>Dzięki Yoast SEO strona na WordPress może być lepiej zoptymalizowana. Podstawowa wersja WP zapewnia wiele rozwiązań, dzięki którym pozycjonowanie witryny jest łatwiejsze. Należą do nich m.in. przyjazne linki. Możesz dodawać zdjęcia i wypełniać od razu tag alt opis obrazka.</p> <p>Największą zaletą systemu jest możliwość łatwego wdrożenia różnych przydatnych rozwiązań. Dostępne są pluginy, które ułatwiają wewnętrzne linkowanie <strong>możesz włączyć menu okruszkowe czy też wyświetlać wpisy podobne tematycznie</strong>. Za pomocą wtyczki włączysz dane strukturalne oraz dodasz tagi rel dla linków, np. nofollow i sponsored. To tylko wybrane opcje. Prawdopodobnie uruchomisz każdą, jaka przyjdzie Ci do głowy kwestia znalezienia odpowiedniego rozwiązania.</p> </div> <div class="border-l-4 border-zinc-300 pl-4 py-3 bg-zinc-50 mb-6 italic rounded-r-lg"> <p class="text-base text-zinc-700">Autor: <span class="font-semibold">Zewnętrzny materiał partnerski</span></p> </div> <span style="position:absolute;opacity:0;" data-sponsored-keyword="halotorun_kf">halotorun_kf</span> <div class="my-8 text-center"> <a href="https://serwisylokalne.pl/" rel="nofollow"> <img src="/banners/serwisylokalne.webp" alt="Serwisy Lokalne - Oferta artykułów sponsorowanych" class="w-full max-w-2xl mx-auto rounded-lg shadow-sm"> </a> </div> <div class="post-sections flex flex-col gap-4 md:gap-6"> <div class="order-1 md:order-1"> <div class="share-buttons"> <span class="share-label">Udostępnij:</span> <div class="share-icons"> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3a%2f%2fhalotorun.pl%2f20230126532090%2fdzialania-seo-na-wordpress-co-warto-wiedziec" target="_blank" rel="nofollow noopener" class="share-icon facebook" aria-label="Udostępnij na Facebook"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M12 2.04c-5.5 0-10 4.49-10 10.02 0 5 3.66 9.15 8.44 9.9v-7H7.9v-2.9h2.54V9.85c0-2.51 1.49-3.89 3.78-3.89 1.09 0 2.23.19 2.23.19v2.47h-1.26c-1.24 0-1.63.77-1.63 1.56v1.88h2.78l-.45 2.9h-2.33v7a10 10 0 0 0 8.44-9.9c0-5.53-4.5-10.02-10-10.02z"/> </svg> </a> <a href="https://wa.me/?text=Dzia%c5%82ania%20SEO%20na%20WordPress%20%20co%20warto%20wiedzie%c4%87%3f%20https%3a%2f%2fhalotorun.pl%2f20230126532090%2fdzialania-seo-na-wordpress-co-warto-wiedziec" target="_blank" rel="nofollow noopener" class="share-icon whatsapp" aria-label="Udostępnij przez WhatsApp"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/> </svg> </a> <button class="share-icon copy-link" data-url="https://halotorun.pl/20230126532090/dzialania-seo-na-wordpress-co-warto-wiedziec" id="copy-link-button" aria-label="Kopiuj link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/> </svg> </button> <a href="mailto:?subject=Dzia%c5%82ania%20SEO%20na%20WordPress%20%20co%20warto%20wiedzie%c4%87%3f&body=https%3a%2f%2fhalotorun.pl%2f20230126532090%2fdzialania-seo-na-wordpress-co-warto-wiedziec" rel="nofollow" class="share-icon email" aria-label="Udostępnij przez email"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/> </svg> </a> </div> <div id="copy-notification" class="copy-notification"> Link skopiowany do schowka! </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { const copyButton = document.getElementById('copy-link-button'); const notification = document.getElementById('copy-notification'); if (copyButton) { copyButton.addEventListener('click', function() { const url = 'https:\/\/halotorun.pl\/20230126532090\/dzialania-seo-na-wordpress-co-warto-wiedziec'; const tempInput = document.createElement('input'); tempInput.value = url; document.body.appendChild(tempInput); tempInput.select(); try { const successful = document.execCommand('copy'); if (successful) { notification.classList.add('show'); copyButton.innerHTML = ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"/> </svg> `; setTimeout(function() { notification.classList.remove('show'); copyButton.innerHTML = ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/> </svg> `; }, 2000); } } catch (err) { console.error('Nie udało się skopiować tekstu: ', err); } document.body.removeChild(tempInput); if (navigator.clipboard) { navigator.clipboard.writeText(url) .catch(err => { console.error('Nie udało się skopiować tekstu: ', err); }); } }); } }); </script> </div> <footer id="post-footer" class="post-section order-2 md:order-5 not-prose mt-0 md:mt-0 border-t pt-4"> <div id="related-post" class="mt-4 md:mt-6"> <h2 class="text-xl md:text-2xl font-bold mb-4 md:mb-6">Zobacz też:</h2> <div class="space-y-0"> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-4 mb-4 last:border-b-0 last:mb-0"> <a href="/20260103188351/22-tysiace-na-sylwestrze-z-polsatem-torun-pokazal-organizacyjna-sile" class="flex mobile-list-link hover:no-underline" aria-label="22 tysiące na Sylwestrze z Polsatem - Toruń pokazał organizacyjną siłę"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/05.webp" alt="22 tysiące na Sylwestrze z Polsatem - Toruń pokazał organizacyjną siłę" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-03T00:21:00+01:00"> 3 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight mb-1"> 22 tysiące na Sylwestrze z Polsatem - Toruń pokazał organizacyjną siłę </h3> <p class="text-sm text-zinc-600 dark:text-zinc-400 line-clamp-2 leading-snug"> Toruńska starówka znów w blasku reflektorów - muzyka, tłum i sprawne służby. W sylwestrową noc plac przed Ratuszem … </p> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-4 mb-4 last:border-b-0 last:mb-0"> <a href="/20260108463130/gdzie-szukac-pomocy-w-toruniu-wsparcie-dla-osob-w-kryzysie-bezdomnosci" class="flex mobile-list-link hover:no-underline" aria-label="Gdzie szukać pomocy w Toruniu - wsparcie dla osób w kryzysie bezdomności"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/23.webp" alt="Gdzie szukać pomocy w Toruniu - wsparcie dla osób w kryzysie bezdomności" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-08T12:02:00+01:00"> 8 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight mb-1"> Gdzie szukać pomocy w Toruniu - wsparcie dla osób w kryzysie bezdomności </h3> <p class="text-sm text-zinc-600 dark:text-zinc-400 line-clamp-2 leading-snug"> Mróz zmusza do działania - w Toruniu miejskie służby i organizacje pozarządowe intensyfikują działania wobec osób bez … </p> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-4 mb-4 last:border-b-0 last:mb-0"> <a href="/20260106514667/w-swiecie-moich-obrazow-portrety-klaudii-mikolajczyk-w-bibliotece-stare-miasto" class="flex mobile-list-link hover:no-underline" aria-label="W świecie moich obrazów - portrety Klaudii Mikołajczyk w Bibliotece Stare Miasto"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/bibliotekaimg/webp/308cnv.webp" alt="W świecie moich obrazów - portrety Klaudii Mikołajczyk w Bibliotece Stare Miasto" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-06T02:02:00+01:00"> 6 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight mb-1"> W świecie moich obrazów - portrety Klaudii Mikołajczyk w Bibliotece Stare Miasto </h3> <p class="text-sm text-zinc-600 dark:text-zinc-400 line-clamp-2 leading-snug"> W styczniu biblioteczna sala przy Jęczmiennej zamienia się w małą galerię portretów pełnych gestów i spojrzeń. … </p> </div> </a> </article> </div> </div> </footer> <div class="order-3 md:order-3"><nav class="flex flex-col md:flex-row gap-4 my-8 not-prose"> <a href="/20230126532087/prezent-dla-elektryka-co-wybrac-na-prezent-dla-elektryka" title="Prezent dla elektryka co wybrać na prezent dla elektryka?" class="flex-1 group block"> <div class="bg-zinc-100 hover:bg-blue-50 rounded-xl p-4 transition-all duration-300 border border-zinc-200 hover:border-blue-200"> <div class="flex items-center text-sm text-zinc-500 mb-2"> <span class="group-hover:text-blue-500 transition-colors duration-300"><< Poprzedni</span> </div> <span class="font-medium group-hover:text-blue-600 transition-colors duration-300">Prezent dla elektryka co wybrać na prezent dla elektryka?</span> </div> </a> <a href="/20230126532092/jak-wybrac-buty-bokserskie" title="Jak wybrać buty bokserskie?" class="flex-1 group block"> <div class="bg-zinc-100 hover:bg-blue-50 rounded-xl p-4 transition-all duration-300 border border-zinc-200 hover:border-blue-200 text-right"> <div class="flex items-center justify-end text-sm text-zinc-500 mb-2"> <span class="group-hover:text-blue-500 transition-colors duration-300">Następny >></span> </div> <span class="font-medium group-hover:text-blue-600 transition-colors duration-300">Jak wybrać buty bokserskie?</span> </div> </a> </nav></div> <div class="order-4 md:order-2"> <section class="social-follow-banner" aria-label="Obserwuj nas na Facebooku"> <a href="https://www.facebook.com/halotorunpl" target="_blank" rel="nofollow noopener external" class="social-follow-link"> <img src="/banners/facebook_banner_min.png" data-src="/banners/facebook_banner_min.png" alt="Facebook" width="64" height="64" loading="lazy" decoding="async"> <div class="social-follow-text"> <div class="social-follow-title">Nie przegap wiadomości z Torunia i okolic - obserwuj nas na Facebooku!</div> </div> </a> </section> </div> </div> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "NewsArticle","headline": "Działania SEO na WordPress co warto wiedzieć?","description": "Od lat zdecydowanie najpopularniejszym systemem CMS jest WordPress. Bezpłatny dostęp, ciągły rozwój, ogromna liczba darmowych wtyczek i motywów, oraz …", "datePublished": "2023-01-26T11:42:24\u002b01:00", "dateModified": "2023-01-26T11:42:24\u002b01:00", "url": "https:\/\/halotorun.pl\/20230126532090\/dzialania-seo-na-wordpress-co-warto-wiedziec", "wordCount": 478 , "inLanguage": "pl","articleBody": "Od lat zdecydowanie najpopularniejszym systemem CMS jest WordPress. Bezpłatny dostęp, ciągły rozwój, ogromna liczba darmowych wtyczek i motywów, oraz społeczność, dzięki której można łatwo rozwiązać każdy problem związany z tym oprogramowaniem, sprawiają, że zainteresowanie tym CMS-em ciągle rośnie. Czy WordPress jest jednak dopracowany pod względem SEO? A może wymaga szerokiej optymalizacji? Czym jest WordPress? WordPress to system CMS, który powstał z myślą o blogerach. Z czasem okazało się, że sprawdza się również jako oprogramowanie serwisów informacyjnych, forów, katalogów stron, a nawet sklepów internetowych. W bazie WP dostępnych jest ponad 60 tys. pluginów, dzięki którym można uzyskać mnóstwo funkcji bez konieczności inwestowania w nowe rozwiązania. Pierwsze wydanie systemu pojawiło się w 2003 roku. Od tamtej pory WordPress przeszedł wiele aktualizacji. Według w3techs.com w styczniu 2023 roku miał ponad 43% udziału w rynku systemów CMS, uwzględniając wszystkie strony www. Jeśli weźmiemy pod uwagę wyłącznie witryny, które bazują na CMS-ie, to udział rośnie do ponad 63%. Jak widzisz, WP jest zdecydowanym liderem. Wiesz już, co to jest WordPress. Dowiedz się, czy to system dopracowany pod względem SEO, który zapewnia wszystkie rozwiązania potrzebne do optymalizacji strony. Wtyczka SEO Yoast Pozycjonowanie stron opartych na systemie WordPress wymaga skorzystania z dodatkowych pluginów, gdyż nie wszystkie opcje, których potrzebujesz, znajdziesz w podstawowej wersji CMS-a. Możesz postawić na różne wtyczki, w tym jedną z najpopularniejszych Yoast SEO. Liczba aktywnych instalacji, w połowie stycznia 2023 roku, wyniosła ponad 5 milionów. Podstawowa wersja jest bezpłatna, ale możesz też skorzystać z płatnej, dającej więcej możliwości. Yoast SEO umożliwia Ci: łatwe wygenerowanie mapy strony , którą dodasz w Google Search Console. personalizację tytułów i opisów poszczególnych stron tagi i . Pierwszy z nich ma duży wpływ na widoczność w Google, zaś drugi może pojawiać się w wyszukiwarce i wpływać na klikalność; analizę treści pod kątem SEO wtyczka sprawdza, czy content jest odpowiednio zoptymalizowany i zawiera niezbędne elementy; automatyczne włączenie danych strukturalnych dzięki temu roboty Google mogą lepiej zrozumieć stronę. To dzięki nim w wynikach mogą pojawić się m.in. ceny produktów z Twojego serwisu, stan magazynowy czy też gwiazdki, które wynikają ze średniej oceny produktu/materiału. Więcej funkcji zapewnia odpłatna wersja Yoast SEO. Pozycjonowanie strony opartej na WordPress jest łatwiejsze dzięki takim wtycztom. Nie musisz zlecać przygotowania rozwiązań specjalnie dla Ciebie możesz skorzystać z gotowych. Korzyści SEO dla strony zbudowanej na WordPress Dzięki Yoast SEO strona na WordPress może być lepiej zoptymalizowana. Podstawowa wersja WP zapewnia wiele rozwiązań, dzięki którym pozycjonowanie witryny jest łatwiejsze. Należą do nich m.in. przyjazne linki. Możesz dodawać zdjęcia i wypełniać od razu tag alt opis obrazka. Największą zaletą systemu jest możliwość łatwego wdrożenia różnych przydatnych rozwiązań. Dostępne są pluginy, które ułatwiają wewnętrzne linkowanie możesz włączyć menu okruszkowe czy też wyświetlać wpisy podobne tematycznie. Za pomocą wtyczki włączysz dane strukturalne oraz dodasz tagi rel dla linków, np. nofollow i sponsored. To tylko wybrane opcje. Prawdopodobnie uruchomisz każdą, jaka przyjdzie Ci do głowy kwestia znalezienia odpowiedniego rozwiązania.", "mainEntityOfPage": { "@type": "WebPage", "@id": "https:\/\/halotorun.pl\/20230126532090\/dzialania-seo-na-wordpress-co-warto-wiedziec" }, "provider": { "@type": "Organization", "name": "HaloTorun - Wiadomości, informacje, aktualności dla Torunia - Halo Torun", "url": "https:\/\/halotorun.pl\/", "identifier": "halotorun.pl\/" },"author": { "@type": "Organization", "name": "Artykuł sponsorowany" },"publisher": { "@type": "NewsMediaOrganization", "name": "HaloTorun - Wiadomości, informacje, aktualności dla Torunia - Halo Torun", "url": "https:\/\/halotorun.pl\/" , "logo": { "@type": "ImageObject", "url": "https:\/\/halotorun.pl\/logo-halotorun.png" } },"image": { "@type": "ImageObject", "url": "https:\/\/halotorun.pl\/foto\/pics\/473946b61c0953b99f0d9859906909eb.webp", "caption": "Działania SEO na WordPress co warto wiedzieć?" } , "articleSection": "Aktualności" } </script> </article> <aside> <div class="lg:sticky lg:top-8"><div class="aside-banner"> <div class="relative"> <div class="aside-banner-container"> <svg class="aside-banner-svg" viewBox="0 0 400 250" xmlns="http://www.w3.org/2000/svg"> <defs> <linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="100%"> <stop offset="0%" style="stop-color:#6366F1;stop-opacity:0.1"> <animate attributeName="stop-opacity" values="0.1;0.15;0.1" dur="8s" repeatCount="indefinite" /> </stop> <stop offset="100%" style="stop-color:#F43F5E;stop-opacity:0.1"> <animate attributeName="stop-opacity" values="0.1;0.15;0.1" dur="8s" repeatCount="indefinite" /> </stop> </linearGradient> </defs> <rect width="100%" height="100%" fill="url(#gradient)" /> <circle cx="30" cy="30" r="60" fill="#6366F1" opacity="0.1"> <animate attributeName="r" values="60;63;60" dur="6s" repeatCount="indefinite" /> </circle> <circle cx="370" cy="220" r="80" fill="#F43F5E" opacity="0.1"> <animate attributeName="r" values="80;83;80" dur="7s" repeatCount="indefinite" /> </circle> <g transform="translate(180, 35) scale(1.0)"> <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"> <path fill="#A855F7" opacity="0.9" d="M17.4 33H15v-4h4l.4 1.5c.3 1.3-.7 2.5-2 2.5zM37 36s-11.8-7-18-7V15c5.8 0 18-7 18-7v28z"/> <g fill="#4F46E5"> <circle cx="9" cy="22" r="5"/> <path d="M40 19h-3v6h3c1.7 0 3-1.3 3-3s-1.3-3-3-3zM18.6 41.2c-.9.6-2.5 1.2-4.6 1.4c-.6.1-1.2-.3-1.4-1L8.2 27.9S17 21.7 17 29c0 5.5 1.5 8.4 2.2 9.5c.5.7.5 1.6 0 2.3c-.2.2-.4.3-.6.4z"/> </g> <path fill="#6366F1" d="M9 29h10V15H9c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2z"/> <path fill="#A855F7" opacity="0.9" d="M38 38c-1.1 0-2-.9-2-2V8c0-1.1.9-2 2-2s2 .9 2 2v28c0 1.1-.9 2-2 2z"/> </svg> </g> <text x="50%" y="120" text-anchor="middle" font-size="22" fill="#4B5563" class="banner-text-title"> Zareklamuj się na </text> <text x="50%" y="145" text-anchor="middle" font-size="28" fill="#4F46E5" class="banner-text-url"> halotorun.pl! </text> <foreignObject x="50" y="180" width="300" height="50"> <div xmlns="http://www.w3.org/1999/xhtml" class="h-full flex items-center justify-center"> <a href="https://serwisylokalne.pl/" rel="nofollow" class="aside-banner-button"> SPRAWDŹ SZCZEGÓŁY </a> </div> </foreignObject> </svg> </div> </div> <p class="aside-banner-promo-text">autopromocja</p> </div> <div class="space-y-3"> <h2 class="font-bold text-xl mb-8">Ostatnie Artykuły</h2> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260114855748/zimowa-rozgrzewka-w-muzeum-okregowym-biale-wakacje-pelne-warsztatow" class="flex mobile-list-link hover:no-underline" aria-label="Zimowa rozgrzewka w Muzeum Okręgowym - Białe Wakacje pełne warsztatów"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/kulturaimg/webp/11.webp" alt="Zimowa rozgrzewka w Muzeum Okręgowym - Białe Wakacje pełne warsztatów" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-14T01:10:00+01:00"> 14 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Zimowa rozgrzewka w Muzeum Okręgowym - Białe Wakacje pełne warsztatów </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260114434757/linoryt-z-dziadkami-w-ratuszu-warsztaty-muzealne-i-odbitki" class="flex mobile-list-link hover:no-underline" aria-label="Linoryt z dziadkami w Ratuszu - warsztaty muzealne i odbitki"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/kulturaimg/webp/3.webp" alt="Linoryt z dziadkami w Ratuszu - warsztaty muzealne i odbitki" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-14T00:50:00+01:00"> 14 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Linoryt z dziadkami w Ratuszu - warsztaty muzealne i odbitki </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260114137491/tony-halik-znow-w-podrozy-po-toruniu-rodzinne-urodziny-w-muzeum-podroznikow" class="flex mobile-list-link hover:no-underline" aria-label="Tony Halik znów w podróży po Toruniu - rodzinne urodziny w Muzeum Podróżników"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/kulturaimg/webp/2.webp" alt="Tony Halik znów w podróży po Toruniu - rodzinne urodziny w Muzeum Podróżników" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-14T00:50:00+01:00"> 14 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Tony Halik znów w podróży po Toruniu - rodzinne urodziny w Muzeum Podróżników </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260114328372/65-stypendiow-dla-studentow-miasto-stawia-na-ksztalcenie-i-zatrzymanie-mlodych-w-toruniu" class="flex mobile-list-link hover:no-underline" aria-label="65 stypendiów dla studentów - miasto stawia na kształcenie i zatrzymanie młodych w Toruniu"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/305cnv.webp" alt="65 stypendiów dla studentów - miasto stawia na kształcenie i zatrzymanie młodych w Toruniu" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-14T00:48:00+01:00"> 14 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> 65 stypendiów dla studentów - miasto stawia na kształcenie i zatrzymanie młodych w Toruniu </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260114723993/policja-zatrzymala-auto-w-bagazniku-2000-paczek-bez-akcyzy" class="flex mobile-list-link hover:no-underline" aria-label="Policja zatrzymała auto - w bagażniku 2000 paczek bez akcyzy"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/policjaimg/webp/111.webp" alt="Policja zatrzymała auto - w bagażniku 2000 paczek bez akcyzy" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-14T00:45:00+01:00"> 14 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Policja zatrzymała auto - w bagażniku 2000 paczek bez akcyzy </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260114128003/miasto-i-umk-wspolpraca-o-stypendiach-mieszkaniu-i-barometrze" class="flex mobile-list-link hover:no-underline" aria-label="Miasto i UMK - współpraca o stypendiach, mieszkaniu i Barometrze"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/34.webp" alt="Miasto i UMK - współpraca o stypendiach, mieszkaniu i Barometrze" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-14T00:44:00+01:00"> 14 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Miasto i UMK - współpraca o stypendiach, mieszkaniu i Barometrze </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260113295414/mlodzi-siatkarze-z-powiatu-pokazali-klase-podwojne-mistrzostwo-sp-osiek-nad-wisla" class="flex mobile-list-link hover:no-underline" aria-label="Młodzi siatkarze z powiatu pokazali klasę - podwójne mistrzostwo SP Osiek nad Wisłą"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/308cnv.webp" alt="Młodzi siatkarze z powiatu pokazali klasę - podwójne mistrzostwo SP Osiek nad Wisłą" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-13T10:24:00+01:00"> 13 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Młodzi siatkarze z powiatu pokazali klasę - podwójne mistrzostwo SP Osiek nad Wisłą </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260113510065/pokaz-eksperymentow-i-spotkanie-z-autorem-nauka-ktora-buchnie-humorem-i-ciekawoscia" class="flex mobile-list-link hover:no-underline" aria-label="Pokaz eksperymentów i spotkanie z autorem - nauka, która buchnie humorem i ciekawością"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/20.webp" alt="Pokaz eksperymentów i spotkanie z autorem - nauka, która buchnie humorem i ciekawością" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-13T10:20:00+01:00"> 13 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Pokaz eksperymentów i spotkanie z autorem - nauka, która buchnie humorem i ciekawością </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260113481180/torun-jako-partner-dyplomatycznego-otwarcia-roku-miasto-pokaze-swoj-potencjal" class="flex mobile-list-link hover:no-underline" aria-label="Toruń jako partner Dyplomatycznego Otwarcia Roku - miasto pokaże swój potencjał"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/28.webp" alt="Toruń jako partner Dyplomatycznego Otwarcia Roku - miasto pokaże swój potencjał" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-13T10:10:00+01:00"> 13 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Toruń jako partner Dyplomatycznego Otwarcia Roku - miasto pokaże swój potencjał </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260113210436/torun-pamieta-106-rocznica-powrotu-miasta-do-wolnej-polski" class="flex mobile-list-link hover:no-underline" aria-label="Toruń pamięta - 106. rocznica powrotu miasta do wolnej Polski"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/11.webp" alt="Toruń pamięta - 106. rocznica powrotu miasta do wolnej Polski" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-13T00:44:00+01:00"> 13 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Toruń pamięta - 106. rocznica powrotu miasta do wolnej Polski </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260113842307/drzewa-w-parku-tysiaclecia-miasto-zaczyna-interwencyjna-wycinke-z-powodu-zagrozenia" class="flex mobile-list-link hover:no-underline" aria-label="Drzewa w Parku Tysiąclecia - miasto zaczyna interwencyjną wycinkę z powodu zagrożenia"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/302cnv.webp" alt="Drzewa w Parku Tysiąclecia - miasto zaczyna interwencyjną wycinkę z powodu zagrożenia" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-13T00:38:00+01:00"> 13 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Drzewa w Parku Tysiąclecia - miasto zaczyna interwencyjną wycinkę z powodu zagrożenia </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260113569144/pakt-kolejowy-przyspiesza-modernizacje-tras-nowe-mijanki-i-elektryfikacja" class="flex mobile-list-link hover:no-underline" aria-label="Pakt Kolejowy przyspiesza modernizację tras - nowe mijanki i elektryfikacja"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/301cnv.webp" alt="Pakt Kolejowy przyspiesza modernizację tras - nowe mijanki i elektryfikacja" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-13T00:34:00+01:00"> 13 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Pakt Kolejowy przyspiesza modernizację tras - nowe mijanki i elektryfikacja </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260112947931/rzemieslnicy-podsumowali-rok-nagrody-i-nowe-plany-cechu-w-toruniu" class="flex mobile-list-link hover:no-underline" aria-label="Rzemieślnicy podsumowali rok - nagrody i nowe plany Cechu w Toruniu"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/12.webp" alt="Rzemieślnicy podsumowali rok - nagrody i nowe plany Cechu w Toruniu" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-12T02:00:00+01:00"> 12 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Rzemieślnicy podsumowali rok - nagrody i nowe plany Cechu w Toruniu </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260111852813/jak-instytucje-kultury-radza-sobie-z-kryzysami-spotkanie-i-raport-w-toruniu" class="flex mobile-list-link hover:no-underline" aria-label="Jak instytucje kultury radzą sobie z kryzysami - spotkanie i raport w Toruniu"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/305cnv.webp" alt="Jak instytucje kultury radzą sobie z kryzysami - spotkanie i raport w Toruniu" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-11T00:33:00+01:00"> 11 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Jak instytucje kultury radzą sobie z kryzysami - spotkanie i raport w Toruniu </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260110995989/awaria-poczty-w-ksiaznicy-kopernikanskiej-jak-szybko-skontaktowac-sie-z-biblioteka" class="flex mobile-list-link hover:no-underline" aria-label="Awaria poczty w Książnicy Kopernikańskiej - jak szybko skontaktować się z biblioteką"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/bibliotekaimg/webp/301cnv.webp" alt="Awaria poczty w Książnicy Kopernikańskiej - jak szybko skontaktować się z biblioteką" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-10T00:35:00+01:00"> 10 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Awaria poczty w Książnicy Kopernikańskiej - jak szybko skontaktować się z biblioteką </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260110679649/szkola-podstawowa-nr-4-z-lipna-wojewodzkim-laureatem-odblaskowej-szkoly-2025-gala-w-bydgoszczy" class="flex mobile-list-link hover:no-underline" aria-label="Szkoła Podstawowa nr 4 z Lipna wojewódzkim laureatem „Odblaskowej szkoły” 2025 - gala w Bydgoszczy"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/policjaimg/webp/301cnv.webp" alt="Szkoła Podstawowa nr 4 z Lipna wojewódzkim laureatem „Odblaskowej szkoły” 2025 - gala w Bydgoszczy" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-10T00:11:00+01:00"> 10 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Szkoła Podstawowa nr 4 z Lipna wojewódzkim laureatem „Odblaskowej szkoły” 2025 - gala w Bydgoszczy </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260109739663/inwentaryzacja-zachodniej-winnicy-ujawnia-przyrode-terenu-i-wyznacza-dalsze-kroki" class="flex mobile-list-link hover:no-underline" aria-label="Inwentaryzacja zachodniej Winnicy ujawnia przyrodę terenu i wyznacza dalsze kroki"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/301cnv.webp" alt="Inwentaryzacja zachodniej Winnicy ujawnia przyrodę terenu i wyznacza dalsze kroki" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-09T13:49:00+01:00"> 9 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Inwentaryzacja zachodniej Winnicy ujawnia przyrodę terenu i wyznacza dalsze kroki </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260109959576/weekend-w-toruniu-koncerty-spektakle-i-rodzinne-atrakcje-w-miescie-pelnym-zycia" class="flex mobile-list-link hover:no-underline" aria-label="Weekend w Toruniu - koncerty, spektakle i rodzinne atrakcje w mieście pełnym życia"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/25.webp" alt="Weekend w Toruniu - koncerty, spektakle i rodzinne atrakcje w mieście pełnym życia" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-09T13:42:00+01:00"> 9 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Weekend w Toruniu - koncerty, spektakle i rodzinne atrakcje w mieście pełnym życia </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260109881832/zima-pod-kontrola-co-warto-wiedziec-o-czadzie-lodzie-i-wychlodzeniu" class="flex mobile-list-link hover:no-underline" aria-label="Zima pod kontrolą - co warto wiedzieć o czadzie, lodzie i wychłodzeniu"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/303cnv.webp" alt="Zima pod kontrolą - co warto wiedzieć o czadzie, lodzie i wychłodzeniu" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-09T13:42:00+01:00"> 9 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Zima pod kontrolą - co warto wiedzieć o czadzie, lodzie i wychłodzeniu </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260109594985/torun-pamieta-prof-gen-elzbiete-zawacka-uroczystosci-przy-grobie-i-msza-w-garnizonie" class="flex mobile-list-link hover:no-underline" aria-label="Toruń pamięta prof. gen. Elżbietę Zawacką - uroczystości przy grobie i msza w garnizonie"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/10.webp" alt="Toruń pamięta prof. gen. Elżbietę Zawacką - uroczystości przy grobie i msza w garnizonie" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-09T13:31:00+01:00"> 9 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Toruń pamięta prof. gen. Elżbietę Zawacką - uroczystości przy grobie i msza w garnizonie </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260109986082/54-nowe-twarze-w-mundurze-pierwsze-w-2026-roku-slubowanie-w-kujawsko-pomorskiem" class="flex mobile-list-link hover:no-underline" aria-label="54 nowe twarze w mundurze - pierwsze w 2026 roku ślubowanie w kujawsko-pomorskiem"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/policjaimg/webp/102.webp" alt="54 nowe twarze w mundurze - pierwsze w 2026 roku ślubowanie w kujawsko-pomorskiem" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <time class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-01-09T02:10:00+01:00"> 9 stycznia 2026 </time> </time> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> 54 nowe twarze w mundurze - pierwsze w 2026 roku ślubowanie w kujawsko-pomorskiem </h3> </div> </a> </article> </div> </div> </aside> </div> <script> function wrapTables() { const article = document.querySelector('article.prose'); if (article) { const tables = article.querySelectorAll('table'); tables.forEach(function(table) { if (!table.parentElement.classList.contains('table-wrapper')) { const wrapper = document.createElement('div'); wrapper.className = 'table-wrapper'; table.parentNode.insertBefore(wrapper, table); wrapper.appendChild(table); console.log('Tabela owinięta w kontener table-wrapper'); } }); } } wrapTables(); document.addEventListener('DOMContentLoaded', wrapTables); </script> </main> <footer class="bg-white py-6 border-t mt-10"> <div class="max-w-7xl mx-auto px-4 md:px-6 lg:px-8"> <div class="flex flex-col md:flex-row justify-between items-center"> <p class="text-sm mb-4 md:mb-0">Copyright © 2026 halotorun.pl Wszystkie prawa zastrzeżone.</p> <ul class="flex items-center space-x-4"> <li><a class="decoration-auto hover:underline font-semibold" href="https://halotorun.pl/kategorie/news">News</a></li> <li><a class="decoration-auto hover:underline font-semibold" href="https://halotorun.pl/podstrony/regulamin-i-polityka-prywatno%c5%9bci">Polityka Prywatności</a></li> <li><a class="decoration-auto hover:underline font-semibold" href="https://halotorun.pl/podstrony/polityka-cookies">Polityka Cookies</a></li> </ul> </div> </div> </footer> <button id="scroll-to-top" class="scroll-to-top" aria-label="Przewiń do góry strony" title="Do góry"> <svg fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 10l7-7m0 0l7 7m-7-7v18"></path> </svg> </button> <script> (function() { const scrollButton = document.getElementById('scroll-to-top'); if (!scrollButton) return; function toggleScrollButton() { if (window.innerWidth <= 767) { if (window.pageYOffset > 300) { scrollButton.classList.add('show'); } else { scrollButton.classList.remove('show'); } } else { scrollButton.classList.remove('show'); } } function scrollToTop() { window.scrollTo({ top: 0, behavior: 'smooth' }); } window.addEventListener('scroll', toggleScrollButton); window.addEventListener('resize', toggleScrollButton); scrollButton.addEventListener('click', scrollToTop); toggleScrollButton(); })(); </script> <div id="consent-notice" class="consent-notice"> <div class="max-w-7xl mx-auto px-4"> <div class="flex flex-wrap md:flex-nowrap items-center justify-between gap-4"> <div class="flex-1"> <p class="text-sm leading-relaxed text-left"> Nasza strona korzysta z plików cookies, aby działała prawidłowo. Używamy także plików cookies i podobnych technologii od zewnętrznych dostawców w celach analitycznych, marketingowych i społecznościowych. Informacje te mogą być przetwarzane również przez naszych partnerów. Kontynuując korzystanie ze strony lub klikając „Przechodzę do serwisu", wyrażasz zgodę na użycie dodatkowych plików cookies zgodnie z naszą <a href="https://halotorun.pl/podstrony/regulamin-i-polityka-prywatno%c5%9bci">polityką prywatności</a>. <a id="cookie-notice-personalization" href="#" class="underline opacity-75 hover:opacity-100 text-white">Zaawansowane ustawienia</a>. </p> </div> <div class="buttons flex flex-wrap gap-2 shrink-0"> <a class="policy-link hover:underline" href="https://halotorun.pl/podstrony/polityka-cookies">Polityka Cookies</a> <button id="cookie-notice-accept" class="accept"> Przejdź do serwisu </button> </div> </div> </div> </div> <div id="consent-overlay"> <div class="bg-white text-black p-6 rounded-lg shadow-lg max-w-md mx-auto mt-20 relative"> <button id="close-consent-overlay" class="absolute top-4 right-4 text-gray-500 hover:text-black text-2xl font-bold leading-none">×</button> <h2 class="text-xl font-bold mb-4 text-black">Ustawienia plików cookie</h2> <div class="cookie-option mb-4"> <label class="flex items-start space-x-3 cursor-pointer"> <input type="checkbox" id="analytics-cookies" value="1" name="analytics" checked class="mt-1" > <span class="text-black"> <span class="font-semibold mb-1 block">Google Analytics</span> <span class="text-sm text-gray-700 block">Pomagają nam zrozumieć, jak odwiedzający korzystają z witryny. Używamy Google Analytics do podstawowych statystyk.</span> </span> </label> </div> <div class="cookie-option mb-4"> <label class="flex items-start space-x-3 cursor-pointer"> <input type="checkbox" id="advertising-cookies" value="1" name="advertising" checked class="mt-1" > <span class="text-black"> <span class="font-semibold mb-1 block">Reklamy i remarketing</span> <span class="text-sm text-gray-700 block">Pozwalają nam wyświetlać spersonalizowane reklamy i mierzyć skuteczność kampanii reklamowych. Dane mogą być wykorzystywane do remarketingu w Google Ads.</span> </span> </label> </div> <div class="buttons flex gap-2 justify-end"> <button id="save-consent" class="btn save-consent px-4 py-2 bg-gray-200 hover:bg-gray-300 text-black rounded"> Zapisz preferencje </button> <button class="btn approve-consent px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded"> Akceptuj wszystkie </button> </div> </div> </div> <button id="cookie-preferences-toggle" title="Zmień ustawienia cookies" class="fixed bottom-4 right-4 bg-gray-600 hover:bg-gray-700 text-white p-2 rounded-full shadow-lg z-40 hidden transition-all hover:scale-110" style="width: 40px; height: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="w-5 h-5"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.25 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"/> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/> </svg> </button> <script> document.addEventListener('DOMContentLoaded', function() { const notice = document.getElementById('consent-notice'); const overlay = document.getElementById('consent-overlay'); const toggleButton = document.getElementById('cookie-preferences-toggle'); let consentSettings = readCookie('consent-settings'); console.log('Wczytane ustawienia cookies:', consentSettings); if (consentSettings && consentSettings.length === 1) { console.log('Migracja starego formatu cookie:', consentSettings); consentSettings = consentSettings + "1"; createCookie('consent-settings', consentSettings, 365); console.log('Zaktualizowano cookie do nowego formatu:', consentSettings); } if (consentSettings && consentSettings.length === 2) { notice.style.display = 'none'; toggleButton.style.display = 'flex'; setConsentInputs(consentSettings); updateConsentMode(consentSettings); if (consentSettings[0] === '1') { loadGoogleAnalytics(); } if (consentSettings[1] === '1') { loadGoogleTagManager(); } } else { notice.style.display = 'block'; toggleButton.style.display = 'none'; document.body.classList.add('has-consent-banner'); } const personalizationBtn = document.getElementById('cookie-notice-personalization'); const acceptAllBtn = document.getElementById('cookie-notice-accept'); const savePreferencesBtn = document.getElementById('save-consent'); const approveAllBtn = document.querySelector('.approve-consent'); const closeOverlayBtn = document.getElementById('close-consent-overlay'); personalizationBtn.addEventListener('click', function(e) { e.preventDefault(); console.log('Kliknięto link personalizacji'); overlay.classList.add('active'); }); acceptAllBtn.addEventListener('click', function(e) { e.preventDefault(); console.log('Kliknięto przycisk akceptuj wszystkie'); acceptAllConsentScripts(); notice.style.display = 'none'; toggleButton.style.display = 'flex'; document.body.classList.remove('has-consent-banner'); }); approveAllBtn.addEventListener('click', function() { console.log('Kliknięto przycisk akceptuj wszystkie w overlay'); acceptAllConsentScripts(); overlay.classList.remove('active'); notice.style.display = 'none'; toggleButton.style.display = 'flex'; document.body.classList.remove('has-consent-banner'); }); savePreferencesBtn.addEventListener('click', function() { console.log('Kliknięto przycisk zapisz preferencje'); setConsentValue(); acceptSomeConsentScripts(this.dataset.consentvalue); overlay.classList.remove('active'); notice.style.display = 'none'; toggleButton.style.display = 'flex'; document.body.classList.remove('has-consent-banner'); }); toggleButton.addEventListener('click', function() { overlay.classList.add('active'); }); closeOverlayBtn.addEventListener('click', function() { console.log('Kliknięto przycisk X - zamykanie overlay'); overlay.classList.remove('active'); }); }); function createCookie(name, value, days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); expires = "; expires=" + date.toUTCString(); } var secureFlag = location.protocol === 'https:' ? '; Secure' : ''; document.cookie = name + "=" + value + expires + "; path=/; SameSite=Strict" + secureFlag; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); console.log('Próba odczytu ciasteczka:', name); console.log('Wszystkie ciasteczka:', document.cookie); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) { const value = c.substring(nameEQ.length,c.length); console.log('Znaleziono wartość:', value); return value; } } console.log('Nie znaleziono ciasteczka:', name); return null; } function eraseCookie(name) { createCookie(name,"",-1); } function acceptAllConsentScripts() { acceptSomeConsentScripts("11"); } function acceptSomeConsentScripts(consentValue) { console.log('Zapisywanie zgody:', consentValue); if (consentValue.length !== 2) { console.error('Nieprawidłowy format zgody:', consentValue); return; } setConsentInputs(consentValue); createCookie('consent-settings', consentValue, 365); updateConsentMode(consentValue); document.getElementById('consent-notice').style.display = 'none'; document.getElementById('consent-overlay').classList.remove('active'); document.getElementById('cookie-preferences-toggle').style.display = 'flex'; if (consentValue[0] === '1') { loadGoogleAnalytics(); } if (consentValue[1] === '1') { loadGoogleTagManager(); } } function updateConsentMode(consentValue) { if (typeof window.gtag !== 'function') { console.warn('gtag nie jest jeszcze dostępny - Consent Mode zostanie zaktualizowany po załadowaniu GA'); window.pendingConsentUpdate = consentValue; return; } const analyticsGranted = consentValue[0] === '1'; const adsGranted = consentValue[1] === '1'; console.log('Aktualizacja Consent Mode - Analytics:', analyticsGranted, 'Ads:', adsGranted); window.gtag('consent', 'update', { 'analytics_storage': analyticsGranted ? 'granted' : 'denied', 'ad_storage': adsGranted ? 'granted' : 'denied', 'ad_user_data': adsGranted ? 'granted' : 'denied', 'ad_personalization': adsGranted ? 'granted' : 'denied' }); if (window.pendingConsentUpdate) { delete window.pendingConsentUpdate; } } function setConsentInputs(consentValue) { const analyticsCheckbox = document.getElementById('analytics-cookies'); const advertisingCheckbox = document.getElementById('advertising-cookies'); if (analyticsCheckbox && consentValue.length >= 1) { analyticsCheckbox.checked = (consentValue[0] === "1"); } if (advertisingCheckbox && consentValue.length >= 2) { advertisingCheckbox.checked = (consentValue[1] === "1"); } } function setConsentValue() { const analyticsCheckbox = document.getElementById('analytics-cookies'); const advertisingCheckbox = document.getElementById('advertising-cookies'); const analyticsValue = analyticsCheckbox && analyticsCheckbox.checked ? "1" : "0"; const advertisingValue = advertisingCheckbox && advertisingCheckbox.checked ? "1" : "0"; const consentValue = analyticsValue + advertisingValue; document.getElementById("save-consent").dataset.consentvalue = consentValue; console.log('Ustawiono wartość zgody:', consentValue); } function loadGoogleAnalytics() { const gaScriptSelector = 'script[src*="googletagmanager.com/gtag/js?id=G-H4PFV2F904"]'; if (!document.querySelector(gaScriptSelector)) { console.log('Ładowanie Google Analytics...'); window.dataLayer = window.dataLayer || []; if (typeof window.gtag !== 'function') { function gtag(){dataLayer.push(arguments);} window.gtag = gtag; } const script = document.createElement('script'); script.async = true; script.src = 'https://www.googletagmanager.com/gtag/js?id=G-H4PFV2F904'; document.head.appendChild(script); script.onload = function() { const consentSettings = window.pendingConsentUpdate || readCookie('consent-settings'); const analyticsGranted = consentSettings && consentSettings[0] === '1'; const adsGranted = consentSettings && consentSettings[1] === '1'; if (typeof window.gtag === 'function') { window.gtag('consent', 'update', { 'analytics_storage': analyticsGranted ? 'granted' : 'denied', 'ad_storage': adsGranted ? 'granted' : 'denied', 'ad_user_data': adsGranted ? 'granted' : 'denied', 'ad_personalization': adsGranted ? 'granted' : 'denied' }); } window.gtag('js', new Date()); window.gtag('config', 'G-H4PFV2F904', { page_title: document.title, page_location: window.location.href }); console.log('Google Analytics załadowany:', 'G-H4PFV2F904'); console.log('Consent Mode - Analytics:', analyticsGranted ? 'granted' : 'denied', 'Ads:', adsGranted ? 'granted' : 'denied'); if (adsGranted) { const sponsoredElement = document.querySelector('[data-sponsored-keyword]'); if (sponsoredElement) { const keyword = sponsoredElement.dataset.sponsoredKeyword; const pageText = document.body.innerText; if (pageText.includes(keyword)) { console.log('➡️ custom_remarketing_hit: znaleziono "' + keyword + '" na stronie'); window.gtag('event', 'custom_remarketing_hit', { keyword_match: keyword }); } } } }; } else { console.log('Google Analytics już załadowany (skrypt w DOM)'); const consentSettings = readCookie('consent-settings'); if (consentSettings && consentSettings.length === 2 && typeof window.gtag === 'function') { updateConsentMode(consentSettings); } } } function loadGoogleTagManager() { const sponsoredElement = document.querySelector('[data-sponsored-keyword]'); if (!sponsoredElement) { console.log('Google Tag Manager: strona nie jest sponsorowana - pomijam ładowanie GTM'); return; } const gtmScriptSelector = 'script[src*="googletagmanager.com/gtm.js?id=GTM-PQHJMNST"]'; if (document.querySelector(gtmScriptSelector)) { console.log('Google Tag Manager już załadowany (skrypt w DOM)'); return; } console.log('Ładowanie Google Tag Manager dla strony sponsorowanej...'); window.dataLayer = window.dataLayer || []; (function(w,d,s,l,i){ w[l]=w[l]||[]; w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'}); var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-PQHJMNST'); console.log('Google Tag Manager załadowany: GTM-PQHJMNST'); } </script> <script> document.addEventListener('DOMContentLoaded', function() { const dropdowns = document.querySelectorAll('.dropdown'); dropdowns.forEach(dropdown => { const dropdownLink = dropdown.querySelector('a'); const dropdownContent = dropdown.querySelector('.dropdown-content'); if (dropdownLink && dropdownContent) { dropdownLink.addEventListener('click', function(e) { e.preventDefault(); dropdownContent.classList.toggle('show'); dropdowns.forEach(otherDropdown => { if (otherDropdown !== dropdown) { const otherContent = otherDropdown.querySelector('.dropdown-content'); if (otherContent && otherContent.classList.contains('show')) { otherContent.classList.remove('show'); } } }); }); } }); document.addEventListener('click', function(e) { if (!e.target.closest('.dropdown')) { document.querySelectorAll('.dropdown-content').forEach(content => { content.classList.remove('show'); }); } }); const scrollToTopBtn = document.getElementById('scrollToTop'); if (scrollToTopBtn) { window.addEventListener('scroll', function() { if (window.pageYOffset > 300) { scrollToTopBtn.classList.add('show'); } else { scrollToTopBtn.classList.remove('show'); } }); scrollToTopBtn.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); } }); document.addEventListener('DOMContentLoaded', function() { if ('loading' in HTMLImageElement.prototype) { const images = document.querySelectorAll('img[loading="lazy"]'); images.forEach(img => { if (img.dataset && img.dataset.src) { img.src = img.dataset.src; } }); } else { const script = document.createElement('script'); script.src = 'https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js'; document.body.appendChild(script); } }); </script> <script defer src="/js/events-tab.js"></script> <script defer src="/js/toc-links.js"></script> <aside id="events-tab" class="events-side-tab" aria-label="Sprawdź nadchodzące wydarzenia"> <button type="button" class="events-tab-handle" aria-expanded="false" aria-controls="events-tab" aria-label="Pokaż panel wydarzeń"> <span class="events-icon" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" aria-hidden="true"><g fill="currentColor"><path d="M7.3 12.2a.7.7 0 0 1 .7-.7h2.8a.7.7 0 0 1 .7.7v2.6a.7.7 0 0 1-.7.7H8a.7.7 0 0 1-.7-.7v-2.6Zm1 .3v2h2.2v-2H8.3ZM8 17a.7.7 0 0 0-.7.7v2.6a.7.7 0 0 0 .7.7h2.8a.7.7 0 0 0 .7-.7v-2.6a.7.7 0 0 0-.7-.7H8Zm.3 3v-2h2.2v2H8.3Zm-1 3.1a.7.7 0 0 1 .7-.7h2.8a.7.7 0 0 1 .7.7v2.6a.7.7 0 0 1-.7.7H8a.7.7 0 0 1-.7-.7v-2.6Zm1 .3v2h2.2v-2H8.3Zm6.3-11.9a.7.7 0 0 0-.7.7v2.6a.7.7 0 0 0 .7.7h2.8a.7.7 0 0 0 .7-.7v-2.6a.7.7 0 0 0-.7-.7h-2.8Zm.3 3v-2h2.2v2h-2.2Zm-1 3.2a.7.7 0 0 1 .7-.7h2.8a.7.7 0 0 1 .7.7v2.6a.7.7 0 0 1-.7.7h-2.8a.7.7 0 0 1-.7-.7v-2.6Zm1 .3v2h2.2v-2h-2.2Zm-.3 4.4a.7.7 0 0 0-.7.7v2.6a.7.7 0 0 0 .7.7h2.8a.7.7 0 0 0 .7-.7v-2.6a.7.7 0 0 0-.7-.7h-2.8Zm.3 3v-2h2.2v2h-2.2Zm5.6-13.2a.7.7 0 0 1 .7-.7H24a.7.7 0 0 1 .7.7v2.6a.7.7 0 0 1-.7.7h-2.8a.7.7 0 0 1-.7-.7v-2.6Zm1 .3v2h2.2v-2h-2.2Zm-.3 9.9a.7.7 0 0 0-.7.7v2.6a.7.7 0 0 0 .7.7H24a.7.7 0 0 0 .7-.7v-2.6a.7.7 0 0 0-.7-.7h-2.8Zm.3 3v-2h2.2v2h-2.2Zm-.3-8.4a.7.7 0 0 0-.7.7v2.6a.7.7 0 0 0 .7.7H24a.7.7 0 0 0 .7-.7v-2.6a.7.7 0 0 0-.7-.7h-2.8Z"/><path d="M1.003 7A6.2 6.2 0 0 1 7.2 1h17.6a6.2 6.2 0 0 1 6.197 6H31v17.8a6.2 6.2 0 0 1-6.2 6.2H7.2A6.2 6.2 0 0 1 1 24.8V7h.003ZM3 9v15.8A4.2 4.2 0 0 0 7.2 29h17.6a4.2 4.2 0 0 0 4.2-4.2V9H3Z"/></g></svg> </span> </button> <a href="/wydarzenie/" class="events-tab-inner" aria-label="Zobacz kalendarz wydarzeń"> <div class="events-title">Sprawdź nadchodzące wydarzenia</div> <span class="events-cta">Zobacz kalendarz</span> </a> </aside> <script defer src="/js/theme.js"></script> </body> </html>