Przez lata “Widgety” były prostymi klockami: “Szukaj”, “Ostatnie wpisy”, “Kategorie”. Przeciągałeś je do paska bocznego i gotowe. Wraz z nadejściem ery Full Site Editing (FSE) i motywów blokowych, koncepcja widgetów uległa całkowitej zmianie.
Ten przewodnik wyjaśnia wszystko: od klasycznych widgetów, przez blokowe widgety, po zaawansowane techniki tworzenia własnych obszarów widgetów w nowoczesnych motywach WordPress.
Czym są widgety w WordPress?
Widgety to modułowe elementy treści, które można dodawać do określonych obszarów motywu WordPress - najczęściej do paska bocznego (sidebar), stopki (footer) lub nagłówka (header). Tradycyjnie były to małe, samodzielne bloki funkcjonalności, takie jak:
- Lista ostatnich wpisów
- Archiwum wpisów
- Kategorie
- Wyszukiwarka
- Tekst/HTML
- Menu nawigacyjne
W nowoczesnym WordPressie (od wersji 5.8) granica między “widgetami” a “blokami” zaciera się - widgety stały się po prostu blokami, które można umieszczać w specjalnych obszarach widgetowych.
Historia widgetów: Od klasycznych do blokowych
Era klasyczna (WordPress < 5.8)
W klasycznym WordPressie widgety były zarządzane przez dedykowany ekran w panelu administracyjnym:
- Wygląd > Widgety - interfejs drag-and-drop
- Widgety były oddzielnym typem komponentów od bloków
- Każdy widget miał własny formularz konfiguracyjny
- Ograniczona funkcjonalność - tylko to, co oferował widget
Era przejściowa (WordPress 5.8 - 6.0)
Wprowadzenie edytora blokowego do obszarów widgetów:
- Widgety zaczęły używać interfejsu Gutenberga
- Możliwość używania dowolnych bloków jako widgetów
- Wtyczka Classic Widgets przywracała stary interfejs
- Hybrydowe podejście - stare widgety działały jako “bloki legacy”
Era Full Site Editing (WordPress 6.1+)
W motywach blokowych (Block Themes) koncepcja widgetów znika całkowicie:
- Nie ma osobnego ekranu Widgety
- Wszystko jest zarządzane przez Wygląd > Edytor
- Sidebar i footer to po prostu części szablonów
- Pełna swoboda w projektowaniu układu
Porównanie: Widgety klasyczne vs blokowe
| Cecha | Widgety klasyczne | Widgety blokowe (FSE) |
|---|---|---|
| Lokalizacja | Wygląd > Widgety | Wygląd > Edytor |
| Interfejs | Drag-and-drop listy | Edytor blokowy Gutenberg |
| Dostępne elementy | Tylko zarejestrowane widgety | Wszystkie bloki WordPressa |
| Własny kod HTML | Ograniczony (widget Tekst) | Pełna swoboda (blok HTML) |
| Responsywność | Zależy od motywu | Natywne wsparcie |
| Wzorce (Patterns) | Nie | Tak |
| Style globalne | Ograniczone | Pełne wsparcie theme.json |
1. Motywy klasyczne (Classic Themes)
Jeśli używasz motywu starszego typu (jak Astra, GeneratePress, czy klasyczny Twenty Twenty-One), wciąż masz dostęp do menu Wygląd > Widgety.
Jednak nawet tam, od wersji WP 5.8, domyślnie używany jest Edytor Blokowy. Zamiast prostych pól, masz pełny interfejs Gutenberga wewnątrz paska bocznego. Możesz tam dodać wszystko: Akapit, Zdjęcie, a nawet Shortcode.
Krok po kroku: Dodawanie widgetów w motywie klasycznym
Krok 1: Przejdź do Wygląd > Widgety
Zaloguj się do panelu WordPress i wybierz z menu bocznego Wygląd > Widgety. Zobaczysz interfejs edytora blokowego z listą dostępnych obszarów widgetowych po lewej stronie.
Krok 2: Wybierz obszar widgetowy
Kliknij na obszar, do którego chcesz dodać widget - najczęściej będzie to:
- Pasek boczny (Sidebar) - zazwyczaj po prawej lub lewej stronie treści
- Stopka (Footer) - dolna część strony
- Nagłówek (Header) - górna część strony (w niektórych motywach)
Krok 3: Dodaj blok/widget
Kliknij przycisk + (Dodaj blok) i wybierz jeden z dostępnych bloków:
Bloki podstawowe:
- Akapit - tekst sformatowany
- Obraz - zdjęcia i grafiki
- Nagłówek - tytuły sekcji
- Lista - wypunktowania i numeracje
Bloki widgetów (dedykowane):
- Archiwum - lista miesięcy z wpisami
- Kategorie - lista kategorii
- Ostatnie wpisy - najnowsze artykuły
- Kalendarz - wizualny kalendarz wpisów
- Tagi chmura - popularne tagi
- Szukaj - formularz wyszukiwania
Bloki zaawansowane:
- HTML - własny kod HTML/CSS/JS
- Shortcode - wstawianie shortcode’ów wtyczek
- Grupa - grupowanie wielu bloków
- Wiersz - układ poziomy bloków
Krok 4: Skonfiguruj ustawienia
Każdy blok ma własne ustawienia dostępne w panelu po prawej stronie:
- Ustawienia bloku - specyficzne dla danego typu bloku
- Styl - kolory, typografia, marginesy
- Zaawansowane - dodatkowe klasy CSS, anchor links
Krok 5: Zapisz zmiany
Kliknij przycisk Zapisz w prawym górnym rogu. Zmiany będą widoczne natychmiast na stronie front-end.
Przywracanie klasycznego interfejsu widgetów
Jeśli tęsknisz za starym widokiem drag-and-drop, zainstaluj oficjalną wtyczkę Classic Widgets:
- Przejdź do Wtyczki > Dodaj nową
- Wyszukaj “Classic Widgets”
- Zainstaluj i aktywuj wtyczkę autorstwa WordPress Contributors
- Ekran Widgety powróci do klasycznego wyglądu
Uwaga: Wtyczka Classic Widgets jest oficjalnie wspierana i będzie działać jeszcze przez wiele lat, ale nie otrzymuje nowych funkcji.
2. Motywy blokowe (Block Themes)
W nowoczesnych motywach (jak Twenty Twenty-Four, Twenty Twenty-Five lub nowoczesne motywy FSE) nie ma menu Widgety. Zniknęło.
Zamiast tego wchodzisz w Wygląd > Edytor (Editor). Cała twoja strona jest edytowalna.
Krok po kroku: Dodawanie “widgetów” w motywie blokowym
Krok 1: Otwórz Site Editor
Przejdź do Wygląd > Edytor. Zobaczysz podgląd swojej strony głównej z aktywnym edytorem blokowym.
Krok 2: Edytuj stopkę (Footer)
Aby dodać elementy do stopki:
- Przewiń stronę w dół do sekcji stopki
- Kliknij w obszar stopki
- Kliknij przycisk Edytuj lub ikonę ołówka
- Dodawaj bloki tak samo jak w edytorze wpisów
Popularne bloki do stopki:
- Kolumny - podział na sekcje (o nas, linki, newsletter, social media)
- Grupa - grupowanie powiązanych elementów
- Nawigacja - menu w stopce
- Formularz - wtyczki formularzy jako bloki
Krok 3: Tworzenie paska bocznego (Sidebar)
W motywach blokowych pasek boczny nie istnieje domyślnie - musisz go stworzyć:
Opcja A: Użyj bloku Kolumny
- Edytuj szablon strony (np. Szablon Pojedynczy wpis)
- Dodaj blok Kolumny z proporcja 70/30 lub 66/33
- W większej kolumnie umieść blok Zawartość wpisu
- W mniejszej kolumnie dodaj bloki “widgetów”:
- Ostatnie wpisy
- Kategorie
- Szukaj
- Obraz (np. zdjęcie autora)
- Tekst (biogram)
Opcja B: Użyj bloku Sidebar (jeśli motyw udostępnia) Niektóre motywy blokowe oferują dedykowany blok Sidebar, który automatycznie tworzy strukturę paska bocznego.
Krok 4: Zapisz szablon
Po wprowadzeniu zmian kliknij Zapisz. WordPress zapyta, czy chcesz zapisać zmiany w szablonie - potwierdź.
3. Najlepsze wtyczki widgetów na 2026 rok
Choć WordPress oferuje wiele wbudowanych bloków, specjalizowane wtyczki rozszerzają możliwości:
Wtyczki do zaawansowanych widgetów
1. Elementor (darmowy + pro)
- Najpopularniejszy kreator stron
- Własny system widgetów (“elementy”)
- Zaawansowane animacje i efekty
- Idealny dla użytkowników nietechnicznych
2. WPForms
- Najlepsza wtyczka do formularzy
- Blok/widget formularza kontaktowego
- Zaawansowane pola i logika warunkówa
3. Smash Balloon (Social Feed)
- Wyświetlanie feedów Instagram, Facebook, Twitter
- Automatyczna aktualizacja
- Wiele opcji stylizacji
4. OptinMonster
- Widgety do generowania leadów
- Pop-upy, paski, slide-iny
- Zaawansowane targetowanie
5. Recent Posts Widget With Thumbnails
- Ulepszona lista ostatnich wpisów
- Miniaturki zdjęć
- Więcej opcji sortowania i filtrowania
Wtyczki do zarządzania widgetami
1. Widget Options
- Kontrola widoczności widgetów (na których stronach się pojawiają)
- Logika warunkówa dla widgetów
- Style i animacje
2. Content Aware Sidebars
- Tworzenie różnych sidebary dla różnych stron
- Logika warunkówa oparta na kategoriach, tagach, typach wpisów
3. Sidebar & Widget Manager
- Zaawansowane zarządzanie obszarami widgetowymi
- Import/eksport konfiguracji
4. Rozwiązywanie problemów (Troubleshooting)
Problem: Widgety nie pojawiają się na stronie
Przyczyny i rozwiązania:
-
Motyw nie obsługuje widgetów
- Sprawdź, czy motyw ma zarejestrowane obszary widgetowe
- Użyj wtyczki do sprawdzania funkcji motywu
- Rozważ zmianę motywu lub kontakt z autorem
-
Błąd w kodzie widgetu
- Sprawdź konsolę przeglądarki (F12 > Console) pod kątem błędów JavaScript
- Wyłącz wtyczki jedna po drugiej, aby znaleźć konflikt
- Sprawdź logi błędów PHP
-
Cache
- Wyczyść cache wtyczek cache’ujących (WP Rocket, W3 Total Cache, LiteSpeed)
- Wyczyść cache przeglądarki (Ctrl+Shift+R)
- Sprawdź cache po stronie serwera (np. Cloudflare)
-
Uprawnienia użytkownika
- Upewnij się, że masz rolę Administrator lub Edytor
- Sprawdź, czy nie ma wtyczek ograniczających dostęp do widgetów
Problem: Widgety wyglądają inaczej niż w edytorze
Rozwiązania:
- Sprawdź style CSS motywu - mogą nadpisywać style bloków
- Użyj niestandardówych klas CSS w ustawieniach bloku
- Sprawdź, czy nie ma konfliktów między wtyczkami
Problem: Nie mogę edytować widgetów w motywie blokowym
Rozwiązania:
- Upewnij się, że używasz motywu blokowego (Block Theme)
- Sprawdź, czy masz wystarczające uprawnienia
- Zaktualizuj WordPress do najnowszej wersji
Problem: Widgety zniknęły po zmianie motywu
Wyjaśnienie: Każdy motyw ma własne obszary widgetowe. Po zmianie motywu:
- Widgety są przenoszone do sekcji “Nieużywane widgety”
- Musisz ręcznie przenieść je do nowych obszarów
- Niektóre widgety mogą nie być kompatybilne z nowym motywem
5. Tworzenie własnych widgetów (podstawy)
Dla deweloperów, którzy chcą tworzyć niestandardowe widgety:
Rejestracja obszaru widgetowego (functions.php)
function wppoland_register_custom_widget_areas() {
register_sidebar( array(
'name' => 'Pasek boczny bloga',
'id' => 'blog-sidebar',
'description' => 'Widgety wyświetlane w pasku bocznym na stronie bloga',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
register_sidebar( array(
'name' => 'Stopka - Kolumna 1',
'id' => 'footer-column-1',
'description' => 'Pierwsza kolumna w stopce',
'before_widget' => '<div class="footer-widget">',
'after_widget' => '</div>',
'before_title' => '<h4>',
'after_title' => '</h4>',
) );
}
add_action( 'widgets_init', 'wppoland_register_custom_widget_areas' );
Wyświetlanie obszaru widgetowego w szablonie
<?php if ( is_active_sidebar( 'blog-sidebar' ) ) : ?>
<aside class="sidebar">
<?php dynamic_sidebar( 'blog-sidebar' ); ?>
</aside>
<?php endif; ?>
Tworzenie własnego widgetu (klasyczny sposób)
class WPPoland_Recent_Posts_Widget extends WP_Widget {
public function __construct() {
parent::__construct(
'wppoland_recent_posts',
'WPPoland: Ostatnie wpisy (zaawansowane)',
array( 'description' => 'Wyświetla ostatnie wpisy z miniaturkami' )
);
}
public function widget( $args, $instance ) {
$title = ! empty( $instance['title'] ) ? $instance['title'] : 'Ostatnie wpisy';
$number = ! empty( $instance['number'] ) ? absint( $instance['number'] ) : 5;
echo $args['before_widget'];
echo $args['before_title'] . esc_html( $title ) . $args['after_title'];
$recent_posts = new WP_Query( array(
'posts_per_page' => $number,
'post_status' => 'publish',
) );
if ( $recent_posts->have_posts() ) {
echo '<ul class="wppoland-recent-posts">';
while ( $recent_posts->have_posts() ) {
$recent_posts->the_post();
echo '<li>';
if ( has_post_thumbnail() ) {
the_post_thumbnail( 'thumbnail' );
}
echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a>';
echo '</li>';
}
echo '</ul>';
}
wp_reset_postdata();
echo $args['after_widget'];
}
public function form( $instance ) {
$title = ! empty( $instance['title'] ) ? $instance['title'] : '';
$number = ! empty( $instance['number'] ) ? absint( $instance['number'] ) : 5;
?>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>">Tytuł:</label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>"
type="text" value="<?php echo esc_attr( $title ); ?>">
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'number' ) ); ?>">Liczba wpisów:</label>
<input class="tiny-text" id="<?php echo esc_attr( $this->get_field_id( 'number' ) ); ?>"
name="<?php echo esc_attr( $this->get_field_name( 'number' ) ); ?>"
type="number" step="1" min="1" value="<?php echo esc_attr( $number ); ?>" size="3">
</p>
<?php
}
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = sanitize_text_field( $new_instance['title'] );
$instance['number'] = absint( $new_instance['number'] );
return $instance;
}
}
function wppoland_register_custom_widget() {
register_widget( 'WPPoland_Recent_Posts_Widget' );
}
add_action( 'widgets_init', 'wppoland_register_custom_widget' );
6. Najlepsze praktyki dla widgetów
Wydajność
- Ogranicz liczbę widgetów - każdy widget to dodatkowe zapytanie do bazy danych
- Używaj cache’owania - wtyczki cache’ujące mogą przyspieszyć ładowanie widgetów
- Lazy loading dla obrazów - upewnij się, że obrazy w widgetach używają lazy loading
- Minimalizuj JavaScript - unikaj widgetów z ciężkimi skryptami JS
UX i dostępność
- Logiczna kolejność - umieszczaj najważniejsze widgety na górze
- Responsywność - testuj widgety na urządzeniach mobilnych
- Kontrast i czcionki - zapewnij odpowiednią czytelność
- Etykiety ARIA - dla niestandardówych widgetów dodaj atrybuty dostępności
SEO
- Unikaj duplikowania treści - nie pokazuj tych samych wpisów w wielu widgetach
- Używaj nagłówków semantycznie - H3 dla tytułów widgetów, nie H1/H2
- Linki wewnętrzne - widgety to świetna okazja do budowania linkówania wewnętrznego
- Szybkość ładowania - wolne widgety mogą obniżać ranking w Core Web Vitals
Co wybrać? Podsumowanie
Dla początkujących: Edytor blokowy w widgetach daje ogromną moc (możesz w końcu łatwo dodać zdjęcie autora do sidebaru bez znania HTML). Jest intuicyjny i oferuje więcej możliwości niż klasyczne widgety.
Dla konserwatystów: Wtyczka Classic Widgets będzie wspierana jeszcze przez lata. Jeśli przyzwyczaiłeś się do starego interfejsu i nie potrzebujesz zaawansowanych funkcji, możesz z niej korzystać.
Dla deweloperów i agencji: Pełne przejście na motywy blokowe i Full Site Editing to przyszłość WordPressa. Inwestycja w naukę FSE zwróci się w dłuższej perspektywie.
Sprawdź nasze profesjonalne usługi WordPress aby rozwinąć swój projekt.



