BStudio Plugin

Image Alt Tags

Wersja: 1.0.0 Autor: Biegun.Studio Wymaga: WordPress 5.8+, PHP 7.4+, WooCommerce 6.0+

Automatyczne alt tagi dla obrazków WooCommerce generowane z szablonu ze zmiennymi {title}, {sku}, {category} i {brand}. Aktualizacja przy zapisie produktu oraz masowe przetwarzanie całego katalogu z jednego panelu.

Co robi ta wtyczka?

Plugin automatycznie uzupełnia pole alt dla obrazków WooCommerce — zarówno głównego zdjęcia produktu, jak i wszystkich zdjęć w galerii. Alt tagi są generowane na podstawie szablonu ustawionego przez administratora, z dynamicznym zastępowaniem zmiennych danymi konkretnego produktu.

Każde zapisanie produktu w panelu admin trigguje aktualizację — bez potrzeby ręcznego edytowania biblioteki mediów. Dla istniejącego katalogu dostępne jest masowe przetwarzanie uruchamiane jednym przyciskiem.

Kluczowe funkcje

🖼️
Główny obrazek + galeria

Osobny szablon dla obrazka okładkowego i dla zdjęć z galerii produktu. Każdy typ obrazka może mieć inną formułę alt tagu.

🔤
Cztery zmienne szablonu

{title}, {sku}, {category}, {brand} — dowolna kombinacja. Plugin automatycznie usuwa wiszące separatory jeśli któraś zmienna jest pusta.

⚡
Auto przy zapisie

Hook save_post_product — alt tagi aktualizują się natychmiast po każdym zapisaniu produktu. Nowe i edytowane produkty zawsze mają aktualny alt.

📦
Bulk processing

AJAX — przetwarza katalog partiami po 20 produktów. Pasek postępu w panelu admin. Bezpieczny dla dużych sklepów.

Instalacja

  1. Skopiuj folder bstudio-image-alt-tags do /wp-content/plugins/.
  2. Aktywuj wtyczkę w panelu Wtyczki → Zainstalowane wtyczki.
  3. Przejdź do WooCommerce → Image Alt Tags i ustaw szablony.
  4. Kliknij Uruchom dla wszystkich produktów, aby zaktualizować istniejący katalog.
Wymagania: WordPress 5.8+, PHP 7.4+, WooCommerce 6.0+. Kompatybilna z HPOS (High Performance Order Storage).

Konfiguracja — panel WooCommerce → Image Alt Tags

Szablony alt tagów

PoleDomyślnieOpis
Główny obrazek produktu {title} Szablon alt tagu dla obrazka okładkowego produktu (thumbnail)
Obrazki galerii produktu {title} — {category} Szablon alt tagu dla wszystkich zdjęć z galerii WooCommerce
Nazwa atrybutu marki brand Slug atrybutu WooCommerce przechowującego markę (bez przedrostka pa_). Używany przez zmienną {brand}.

Dostępne zmienne szablonu

ZmiennaŹródło danychPrzykładPuste gdy
{title} $product->get_name() Sneakers Nike Air Max Nigdy (nazwa produktu zawsze istnieje)
{sku} $product->get_sku() NK-AM-001 Produkt bez ustawionego SKU
{category} Pierwsza kategoria z get_the_terms('product_cat') Buty sportowe Produkt bez przypisanej kategorii
{brand} Atrybut WooCommerce (globalny lub lokalny) Nike Brak atrybutu lub pusta wartość
Czyszczenie pustych zmiennych: Jeśli zmienna ma pustą wartość (np. brak SKU), plugin automatycznie usuwa wiszące separatory (myślniki, pauzy, spacje) pozostałe po podstawieniu. Szablon {title} — {sku} dla produktu bez SKU zwróci samo {title}, nie Nazwa produktu —.

Tryb automatyczny

Po aktywacji plugin rejestruje hook save_post_product (priorytet 20). Każde zapisanie produktu w panelu WordPress — nowe lub edytowane — automatycznie uruchamia aktualizację alt tagów.

Hook jest odpalany po zapisaniu danych WooCommerce, więc get_image_id() i get_gallery_image_ids() zwracają aktualne wartości. Autozapis (autosave) i rewizje są pomijane.

Bulk processing

Sekcja Masowe przetwarzanie w panelu uruchamia aktualizację wszystkich opublikowanych produktów przez AJAX:

  1. Kliknięcie przycisku pobiera łączną liczbę produktów (biat_get_total).
  2. Następnie sekwencyjnie wysyłane są requesty biat_bulk_process z parametrem offset.
  3. Każdy batch przetwarza 20 produktów i zwraca JSON: { processed, total, done }.
  4. Pasek postępu aktualizuje się po każdym batchu. Po zakończeniu pojawia się komunikat ✓ Gotowe.
Uwaga: Bulk processing nadpisuje wszystkie istniejące alt tagi — zarówno puste, jak i te wypełnione ręcznie. Po uruchomieniu nie można cofnąć zmian inaczej niż przez kolejne masowe przetwarzanie.

Jak plugin rozpoznaje markę ({brand})?

Plugin szuka marki w dwóch miejscach — w tej kolejności:

  1. Globalny atrybut WooCommerce (taksonomia) — szuka termu w taksonomii pa_{brand_attribute}. Przykład: jeśli w panelu wpisano brand, plugin szuka taksonomii pa_brand.
  2. Lokalny atrybut produktu (custom) — jeśli taksonomia nie istnieje lub produkt nie ma przypisanego termu, plugin sprawdza atrybut lokalny przez $product->get_attribute('brand'). Jeśli atrybut zawiera wiele wartości (rozdzielonych przecinkiem), zwracana jest pierwsza.

Jeśli żadne źródło nie zwróci wartości, zmienna {brand} zostaje zastąpiona pustym stringiem, a separator jest automatycznie usuwany.

Przykładowe szablony

SzablonWynikowy alt tag
{title}Sneakers Nike Air Max
{title} — {category}Sneakers Nike Air Max — Buty sportowe
{brand} {title} {sku}Nike Sneakers Nike Air Max NK-AM-001
{title} | {brand} | {category}Sneakers Nike Air Max | Nike | Buty sportowe
{title} — {sku} (produkt bez SKU)Sneakers Nike Air Max

Jak alt tag jest zapisywany?

Plugin aktualizuje meta pole _wp_attachment_image_alt w tabeli wp_postmeta dla każdego attachmentu (obrazka). Jest to standardowy sposób WordPress na przechowywanie alt tagów — identyczny z tym, co admin wypełnia ręcznie w bibliotece mediów.

Po przetworzeniu zmiana jest widoczna natychmiast w bibliotece mediów przy danym pliku (sekcja Tekst alternatywny).

Struktura plików

bstudio-image-alt-tags/
├── bstudio-image-alt-tags.php ← Główny plik, HPOS compat, bootstrap, save_post hook
├── admin/
│   └── js/
│       └── biat-admin.js ← AJAX bulk: getTotal → processBatch → pasek postępu
└── includes/
    ├── class-biat-options.php ← Przechowywanie ustawień (wp_options key: biat_settings)
    ├── class-biat-settings.php ← Panel WooCommerce → Image Alt Tags, enqueue JS
    ├── class-biat-processor.php ← process_product, resolve_template, get_brand
    └── class-biat-bulk.php ← wp_ajax_biat_get_total + biat_bulk_process

Klucze wp_options

KluczTypOpis
biat_settingsarrayTablica ze wszystkimi ustawieniami wtyczki (main_template, gallery_template, brand_attribute)

Warunki zapisu alt tagu

Alt tag nie jest zapisywany w następujących przypadkach:

Często zadawane pytania

Czy plugin nadpisuje alt tagi wypełnione ręcznie?

Tak — plugin nie sprawdza, czy alt jest już wypełniony. Każde uruchomienie (auto lub bulk) nadpisuje istniejącą wartość. Jeśli chcesz zachować ręczne alt tagi dla wybranych produktów, nie uruchamiaj bulk processing po ich wypełnieniu i upewnij się, że te produkty nie są zapisywane ponownie.

Co się stanie, jeśli zmienię szablon?

Nowy szablon będzie stosowany dla produktów zapisywanych po zmianie. Żeby zaktualizować alt tagi dla wszystkich istniejących produktów, uruchom bulk processing w sekcji Masowe przetwarzanie.

Czy galeria produktów zmiennych też jest obsługiwana?

Tak. Plugin pobiera galerię przez $product->get_gallery_image_ids() — działa zarówno dla produktów prostych, jak i zmiennych. Galeria wariantów (jeśli ustawiona osobno przez inną wtyczkę) nie jest obsługiwana, bo WooCommerce nie udostępnia jej przez standardowe API.

Ile produktów przetwarza bulk processing na raz?

Domyślnie 20 produktów per batch (max 50). Batche są wysyłane sekwencyjnie — następny rusza po otrzymaniu odpowiedzi z poprzedniego. Dzięki temu sklep nie traci responsywności nawet przy tysiącach produktów.

Czy potrzebuję ustawiać atrybut marki?

Tylko jeśli używasz zmiennej {brand} w szablonie. Jeśli Twój sklep nie ma atrybutu marki, po prostu nie używaj tej zmiennej — plugin zastąpi ją pustym stringiem i wyczyści separator.

Czy alt tagi są wymagane przez Google?

Nie są wymagane do indeksowania strony, ale są silnie zalecane. Google używa alt tagów do rozumienia kontekstu obrazka, indeksowania w Google Images i jako sygnał dostępności (WCAG). Brak alt tagów na obrazkach produktów to zmarnowany potencjał SEO.

Wsparcie i zgłoszenia

Masz pytanie, napotkałeś problem albo chcesz rozwinąć to rozwiązanie pod swój sklep? Pomożemy.

Pomoc techniczna

Problemy z instalacją, konfiguracją lub działaniem wtyczki — opisz zgłoszenie, a wrócimy z rozwiązaniem.

Zgłoszenie (ticket)

Wyślij e-mail na shop@biegun.studio. W temacie podaj nazwę wtyczki i krótki opis. Dołącz wersje WordPressa, WooCommerce i PHP oraz kroki odtworzenia problemu.

Rozwój i modyfikacje

Potrzebujesz dodatkowej funkcji albo integracji? Realizujemy rozszerzenia i wdrożenia na zamówienie — napisz na shop@biegun.studio.

Pełna oferta wtyczek: biegun.studio/sklep