WordPress shortcode – pozycja w treści wpisu lub strony
O funkcjonalności shortcode (termin, oznaczający krótki kod, będący etykietą funkcji zdefiniowanej we wtyczce lub pliku functions.php) w WordPress napisano już wiele artykułów i poradników. Nie znalazłem w nich jednak informacji dotyczącej umiejscowienia treści, jaką każdy shortcode generuje. W oficjalnej dokumentacji nie doszukałem się ich również, więc przyjrzałem się konstrukcji kilku wtyczek. Oto rezultat.
Najprostszym przykładem jest (jak zawsze) wygenerowanie jakiegoś tekstu. Tak więc po umieszczeniu we wpisie krótkiego kodu [cp] w podglądzie wpisu powinien zostać wyświetlony tekst “Code is poetry”. Wystarczy, że poniższy kod zapiszemy jako plik o nazwie wtyczka.php:
function code() {
return 'Code is poetry';
}
add_shortcode('cp', 'code');
Jeśli teraz stworzymy wpis o treści: “Motto WordPress brzmi: [cp]” i wyświetlimy podgląd wpisu, będzie on wyglądał następująco:
Motto WordPress brzmi: Code is poetry
Zmodyfikujmy teraz kod funkcji code() do następującego:
function code() {
echo 'Code is poetry';
}
add_shortcode('cp', 'code');
Po tej modyfikacji treść wpisu będzie wyglądała następująco:
Code is poetryMotto WordPress brzmi:
Konkluzja jest więc następująca. Jeśli do wyświetlenia zawartości generowanej przez funkcję użyjemy polecenia echo, wygenerowana zawartość pojawi się zawsze na początku wpisu, przed jego treścią niezależnie od tego, w którym miejscu wpisu umieścimy krótki kod. Aby jednak wygenerowana treść pojawiła się w miejscu, które świadomie określimy poprzez wpisanie krótkiego kodu, koniecznie trzeba użyć polecenia return w funkcji generującej treść dla danego krótkiego kodu. Z punktu widzenia przejrzystości kodu, jak również dostępności wskazane jest używanie polecenia return, ponieważ dzięki temu można lepiej wykorzystać funkcje opisane za pomocą krótkich kodów.
W domyślnej instalacji WordPress (obecnie w wersji 2.7.1) jest zaimplementowany krótki kod [gallery]. Pomimo wielu użytecznych opcji, treść generowana jest przy użyciu poleceń echo, co uniemożliwia wstawienie zestawu zdjęć powiązanych z wpisem, np. po krótkim wstępie. Teraz jednak, dzięki powyższej wskazówce, nic nie stoi na przeszkodzie, aby każdy w szybki sposób mógł to naprawić.
Więcej przykładów i informacji dotyczących krótkich kodów:
Oficjalne API WordPress
Smashing Magazine
WPEngineer
Powiązane artykuły:

14.02.2009 o 21:45
Fajnie, że ktoś jeszcze o shortcode API napisał. Szkoda, że dałeś tylko jeden przykład. Jak ktoś jest zainteresowany dłuższym tekstem po polsku (bo jak zna angielski to oficjalna dokumentacja jest naprawdę świetna) zapraszam na http://vivee.info/2009/02/12/wordpress-shortcode-api/
14.02.2009 o 21:58
W przygotowaniu mam dłuższy artykuł, a opisana tutaj rzecz strawiła mi prawie 2 dni czasu. Oficjalna dokumentacja właśnie za dobra nie jest, tzn. traktuje bardzo powierzchownie o temacie. Jest na pewno dobrym punktem wyjścia, jednak dalej jest ciemność.
29.05.2009 o 16:59
[...] temu przy okazji ogólnej implementacji i podstawach użycia w WordPress (link do artykułu „WordPress shortcode – pozycja w treści wpisu lub strony”). Oto kilka nowych funkcji i pomysłów jakie zostały [...]