Shortcodes zostały wdrożone w wersji 2.5. Od tego czasu okazały się jedną z najbardziej użytecznych funkcji tego CMSa. Przeciętny użytkownik działający, jako wydawca lub edytor ma możliwość publikowania dynamicznej zawartości za pomocą makr, bez konieczności posiadania zaawansowanych umiejętności programistycznych.
Po dodaniu kodu shortcode do postu lub strony – jest on zastępowany inną zawartością. Innymi słowy, możemy zawartością makr w nawiasach kwadratowych [treść] i zastąpić go odpowiednią zawartością dynamiczną, która jest produkowana przez funkcję PHP.
Użycie jest bardzo proste. Powiedzmy, że chcemy pokazać najnowsze posty w danym miejscu. Do takiego zadania możemy użyć następujący fragment:
[recent-posts]
Innym przykładem uzycia shortcode jest możliwość sterowania liczby wyświetlanych postów:
[recent-posts posts="5"]
Idąc jeden krok dalej możemy zdefiniować nagłówek na liście najnowszych postów:
[recent-posts posts="5"]Nagłówek[/recent-posts]
Proste Shortcodes
W tej części będziemy tworzyć proste shortcode’y :)
[recent-posts]
Sam proces tworzenia jest dość prosty i nie wymaga zaawansowanej wiedzy z zakresu PHP. Podstawowe kroki to:
- Stworzenie funkcji, która będzie wywoływana przez WordPressa, gdy znajdzie shortcode.
- Zarejestrowanie shortcode ustawiając unikalną nazwę.
- Rejestracja funkcji.
Cały kod musi być umieszczony w pliku functions.php lub w odzielnym pliku PHP, który będzie odwoływany z pliku functions.php
Funkcja Callback
Gdy shortcode zostanie odnaleziony, jest zastępowany przez dany kawałek kodu, który jest funkcją zwrotną (callback). Tak, więc utworzymy funkcję, która sprawdza najnowsze posty w nazie danych MYSQL.
function recent_posts_function() {
query_posts(array(’orderby’ => 'date’, 'order’ => 'DESC’ , 'showposts’ => 6));
if (have_posts()) :
while (have_posts()) : the_post();
$return_string = ”.get_the_title().”;
endwhile;
endif;
wp_reset_query();
return $return_string;
}
Powyższy fragment kodu odpytuje bazę danych, aby uzyskać najnowszy post i zwracać ciąg z linkiem do niej. Warto zaznaczyć, że funkcja zwrotna nic nie „drukuje”, a zwraca ciąg znaków (stringów).
Rejestracja shortcode
Teraz dla WordPressa,ta funkcja jest shortcode’m.
function register_shortcodes(){
add_shortcode('recent-posts', 'recent_posts_function');
}
Jeśli shortcode [recent-posts] zostanie znaleziona w treści, następnie zostanie wywołana funkcja recent_posts_function().Należy upewnić się, że nazwa dla naszego shortcode jest unikalna, aby uniknąć konfliktów.
Hooks
Haki to część API WordPressa dodające akcje i filtry. W celu realizacji naszego shortcode’u musimy użyć funkcji register_shortcodes().
add_action( 'init', 'register_shortcodes');
Testowanie shortcode
[recent-posts]
Po opublikowaniu postu w przeglądarce powinniśmy zobaczyć, listę najnowszych postów na swoim blogu, np. po ostylowaniu jak na poniższym zrzucie: