WordPress - motywy, wtyczki, informacje, programowanie

Shortcode [ gallery ]

Co to są shortcodes i jak ich używać? Shortcode „gallery”

Shortcodes zostały wprowadzone dawno temu, już w Wordpressie 2.5 i są bardzo przydatnym narzędziem dającym redaktorowi bloga dodatkowe możliwości komponowania wpisów, dodawania do nich niestandardowych elementów, bez konieczności ręcznego umieszczania w nich fragmentów HTML’a.

Po co wymyślono shortcodes

Często zdarza się, zwłaszcza w bardziej zaawansowanych serwisach opartych na WordPressie, że redaktor chciałby dodać do wpisu ładny przycisk (np. pozwalający na pobranie pliku), nietypowo wyglądającą ramkę z tekstem (np. ostrzeżenie),  formularz, specjalnie zaprezentowaną grafikę itp. Elementy takie nie są standardowo dostępne w edytorze WordPressa. Pomysłowość ludzka i inwencja osób tworzących serwisy nie zna granic, i zawsze znajdzie się coś, czego autorzy systemu nie przewidzieli.

Teoretycznie zawsze można umieścić we wpisie fragment HTML, dzięki odpowiedniemu widokowi w edytorze WordPressa, ale  to zawsze jest groźne. Rzadko redaktorzy serwisów są na tyle świadomi technicznie, żeby to zrobić dobrze, a nawet osoba doświadczona może niechcący spowodować problemy (np. poprzez kolizję nazw styli) albo wyprodukować dziurę w bezpieczeństwie (np. dodając fragment javascriptu). Generalnie takich praktyk należy unikać za wszelką cenę.

Shortcodes pozwalają, aby programista przygotował redaktorowi takie specyficzne elementy do umieszczania w treściach wpisów. Redaktor w odpowiednim miejscu wpisuje po prostu nazwę danego shortcodu w nawiasach kwadratowych. Na przykład:

[podpis]

Podczas generowania strony w miejscu kodu zostanie wstawione to co przygotował programista. Jeśli podpis jest długi, może to być wygodne. Na blogu królowej angielskiej byłoby to na przykład:

Elżbieta II, z Bożej łaski Królowa Zjednoczonego Królestwa Wielkiej Brytanii i Irlandii Północnej, Antigui i Barbudy, Australii, Bahamów, Barbadosu, Belize, Grenady, Kanady, Jamajki, Nowej Zelandii, Papui-Nowej Gwinei, Saint Kitts i Nevis, Saint Lucia, Saint Vincent i Grenadyn, Tuvalu i Wysp Salomona, przewodnicząca Wspólnoty Narodów, Obrończyni Wiary

Jak widać shortcodes są przydatne do umieszczania we wpisach często powtarzających się dłuższych fragmentów tekstu lub grafiki – podpisów, logotypów, albo np. nazwy firmy. Ma to jeszcze jedną zaletę – jeśli pewnego dnia okaże się, że do powyższego podpisu trzeba na początku dodać „Jej Królewska Mość”, to wystarczy dokonać odpowiedniej zmiany w funkcji wypisującej shortcode i zmieniony podpis pojawi się we wszystkich miejscach gdzie był użyty bez konieczności edycji tych wpisów. Podobnie jeśli zmieni się kiedyś nazwa firmy, która jest właścicielem strony np. z: Exportex-Importex sp. z o.o. na Importex-Exportex SA, to jeśli była wstawiana do wpisów np. shortcodem:

[firma]

Zmiany wystarczy dokonać w jednym miejscu (w funkcji shortcode) aby zmieniły się wszystkie jej wystąpienia w całym serwisie.

Shortcode [gallery]

Standardowym shortcodem oprogramowanym domyślnie w WordPressie jest

[gallery]

W miejscu w którym go umieścimy zostanie wygenerowana galeria wszystkich zdjęć załączonych do danego wpisu.

Widok galerii zdjęć

Standardowy widok galerii zdjęć WordPress

Do większość shortocodów można podać dodatkowe atrybuty, które pozwalają modyfikować ich działanie. Na przykład

[gallery collumns=4]

wyświetla galerię z miniaturami ułożonymi w czterech kolumnach (domyślnie używane są 3 kolumny).

Do shortcode [gallery] można podać następujące atrybuty:

  • columns – liczba kolumn, w których mają być ułożone miniatury obrazków (domyślnie 3)
  • id – identyfikator wpisu, z którego mają być pobrane obrazki (domyślnie jest to aktualny, właśnie wyświetlany wpis)
  • size – rozmiar miniatury obrazka – można użyć rozmiarów standardowych (thumbnail, medium, large, full). Domyślnie użyty jest rozmiar thumbnail. Wielkości w pikselach dla poszczególnych rozmiarów obrazków ustawia się w ustawieniach WordPressa, w panelu administracyjnym w opcji Ustawienia/Media (Settings/Media)
  • include – identyfikatory obrazków (oddzielone przecinkami), które maja być wyświetlone, jeśli nie chcemy użyć wszystkich
  • exclude – identyfikatory obrazków (oddzielone przecinkami), które maja pominięte
  • link – jeśli chcemy aby miniatury linkowały bezpośrednio do zdjęć, a nie do wpisów z załącznikami trzeba podać link=file
  • itemtag, icontag, captiontag – pozwalają zmienić tagi HTML którymi jest formatowana galeria. Domyślnie są to odpowiednio: dl, dt, dd
  • orderby – kolejność wyświetlania obrazków, domyślnie menu_order, można zmienić na przykład na ID. Specjalną wartością jest RAND czyli kolejność losowa
  • order –  określa czy sortowanie obrazków ma być rosnące ASC czy malejące DESC

Atrybuty shortcodów

Poszczególne atrybuty podajemy do shortcodów podobnie jak atrybuty w HTML, w notacji atrybut=wartość przy czym wartości atrybutów mogą być podane w cudzysłowach, w apostrofach, lub bez żadnych ograniczników, jeśli nie zawierają spacji. Na przykład następujące wywołania są równoważne:

[gallery columns=”4″]

[gallery columns=’4′]

[gallery columns=4]

Podczas przetwarzania shortcodów wszystkie nazwy atrybutów zamieniane są na małe litery, dlatego, żeby uniknąć problemów, zarówno programiści jak i używający powinni pisać je małymi literami.

W nazwie atrybutów mogą występować jedynie litery i znak podkreślenia.

Wartość atrybutu nie może zawierać nawiasów kwadratowych ] i [ nawet jeśli są ujęte w nawiasy. Na przykład kod:

[button text="[kliknij]"]

jest niepoprawny

Sama nazwa shortcodu może być pisana zarówno małymi jak i dużymi literami, ale wielkość liter jest znacząca, zatem kody

[tenKOD] i [TENkod]

są dwoma różnymi kodami.

Oprócz shortcodów takich jak [gallery] mogą być także używane takie, kóre obejmujące jakieś treści, na przykład:

[frame color="red"]Tekst do umieszczenia w ramce[/frame]

Jeśli programista to przewidział (jest to pożądane działanie), w treści objętej takim shortcodem mogą się znaleźć inne shortcody.

Więcej informacji

W repozytorium na stronach wordpress.org można znaleźć wiele wtyczek, które po zainstalowaniu dodają użyteczne shortcody ogólnego zastosowania, czyli takie, które mogą się przydać większości osób prowadzących strony na WordPressie niezależnie od rodzaju strony. Ciekawymi przykładami wtyczek związanych z shortcodami są:

  • Shortcodes Ultimate – kolekcja ponad 30 ogólnie przydatnych shortcodów.
  • ShortCodes UI – wtyczka pozwalająca definiować własne shortcody.
  • Lorem shortcode – wygodna wtyczka z shortcodami do generowania przykładowego tekstu”Lorem ipsum” i przykładowych obrazków – bardzo przydatna do testowania nowych instalacji WordPressa, kiedy jeszcze nie ma prawdziwych artykułów.

Jeśli mamy pomysł i potrzebę dodania do szablonu własnych shortcodów ich oprogramowanie nie jest specjalnie trudne. Jak to zrobić opisujemy w artykule Oprogramowanie własnego shortcode w szablonie WordPressa.

Powiadomimy Cię o nowych artykułach

Komentarzy: 4

  1. Znów podziękowanie za bardzo dobry artykuł! 🙂
    stregahan

  2. Fajnie wyjaśnione. 🙂 Zastanawiam się gdzie są przechowywane shortcodes – to się może przydać jeśli korzystam z gotowego motywu, który ma je zdefiniowane, ale nieudokumentowane. Można by podejrzeć jakie parametry są możliwe no i zmodyfikować shortcodes.

    • Nigdzie nie są przechowywane 🙂 są w kodzie serwisu, najpewniej w functions.php, ale jak motyw jest złożony to mogą być w jakimś includowanym pliku. Shortcody mogą być też definiowane przez wtyczki. Generalnie trzeba szukać wywołania funkcji add_shortcode().

  3. Dziękują bardzo za ciekawy i użyteczny wpis!