Jak utworzyć dodatkowe szablony postów/stron w Wordpress? | DailyWeb.pl

Jak utworzyć dodatkowe szablony postów/stron w WordPress?

Opublikowano 4 lata temu - 2


Uwielbiam platformę WordPress za jej ogromne możliwości. Abstrahując już od ogromnej społeczności do tej aplikacji, która wytwarza tony pluginów, wtyczek i szablonów, to jest jeszcze coś. Uwielbiam ją także, za bardzo intuicyjny sposób w jaki można ją edytować, co sprawia masę frajdy mając oparcie w bardzo rozbudowanej dokumentacji, w której jest wszytko, co potrzeba. Przyznam, że spodziewałem się że tworzenie szablonów pod WP to istna katorga, ale na podstawie moich doświadczeń z bieżącym szablonem bloga, wiem już, że jeśli masz coś w sobie z Geeka, to tworzenie szablonu przyniesie Ci sporo frajdy.

Dzisiaj nie będzie o tworzeniu szablonów pod Wordpress od samych podstaw, gdyż tutoriali w sieci jest ogrom i pewnie ja nic lepszego nie wymyśle w tej materii. Ja zaś zaprezentuje Wam, jak utworzyć dodatkowe szablony stron czy wpisów do szablonu, z którego aktualnie korzystamy. Zapytacie o co chodzi w praktyce? Otóż każdy wpis na moim blogu jest zbudowany na zasadzie wpis w części centralnej a po prawej sidebar, w którym umieszczone są ostatnie wpisy z sekcji miniblog. Przy okazji prezentacji nowych skórek do Wordpress czy zwykłych statycznych stron HTML doszedłem, do wniosku, że przydałaby się możliwość zagospodarowania całej przestrzeni strony np. bez sidebar'a (tutaj macie przykład). W związku z tym przygotowałem sobie szablon podstrony z pełną długością i teraz przy tworzeniu wpisu mam możliwość wyboru:

posttheme

Gdzie w moim wypadku, domyślny szablon to ten z sidebar'em a Full wdith (tak z błędem ;-) ), to szablon który stworzyłem dodatkowo, gospodarujący całość strony. Oczywiście to jaki typ podstrony chcecie utworzyć, zależy tylko od was a jedynym ograniczeniem jest Wasza wyobraźnia. Zacznijmy jednak od początku, jak właściwie stworzyć dodatkowy szablon?

Krok 1

Przede wszystkim należy wgrać na serwer plik szablonu, w miejscu gdzie znajduje się nasz WordPress. Proponuje dla Waszego komfortu skopiować plik single.php (który odpowiedzialny jest za wyświetlenie pojedynczego wpisu), następnie zmienić mu nazwę np. single-nazwa.php, gdzie w nazwa wstawiacie dowolną wartość. Nowy plik należy wgrać na serwer do katalogu szablonu (tam też znajduje się single.php):

/wp-content/themes/nazwa_Twojego_szablonu

chyba nie muszę dodawać, że nazwa_Twojego_szablonu, to paradoksalnie nazwa Twojego szablonu? ;-)

Krok 2

Zanim przejdziesz do edycji nowo-utworzonego pliku szablonu (single-nazwa.php), należy pamiętać o bardzo istotnej kwestii. W nagłówku, na samym początku tego pliku należy umieścić poniższą formułkę:

<?php
/*
Template Name Posts: Custom
*/
?>

Dzięki temu zapisowi, WordPress będzie wiedział jak zinterpretować nowy plik. W miejscu Twoja_nazwa określasz nazwę szablonu, który następnie pojawi się do wyboru podczas tworzenia nowego wpisu.  Teraz należy zmodyfikować zawartość nowo-utworzonego pliku wgranego na serwer (w naszym przypadku single-nazwa.php), zgodnie z Waszymi predyspozycjami, następnie całość zapisać na serwerze. Polecam do pracy na plikach umieszczonych Notepad++ i dodatkowo wtyczkę (która jest tam standardowo) NppFTP. Dzięki czemu będziecie mogli edytować pliki na serwerze, bez konieczności ich wysyłania. Do tego działa opcja ctrl+z gdyby się okazało, że coś popsuliście ;-)

Krok 3

Co dalej? W zasadzie zostaje nam zainstalowanie odpowiedniego pluginu, który będzie obsługiwać nasze szablony wpisów. Ja do tego celu korzystam z narzędzia o nazwie Custom Post Template i Wam także polecam. To właśnie ten plugin odpowiedzialny jest za wyświetlenie dodatkowego boksu pod ikoną wpisu, podczas tworzenia nowego posta.

posttheme

Podsumowanie + opcja edycji szablonów stron

I to w zasadzie wszystko. Banalnie proste, prawda? To jest właśnie to, za co kocham WordPress. Dodam jeszcze na koniec, że gdybyście chcieli utworzyć dodatkowe szablony dla strony (a nie dla postów), to w zasadzie procedura jest taka sama jak powyżej, tylko w kroku pierwszym plik należy nazwać jako page-Twoja_nazwa.php.