Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

pl:Motywy

Ta dokumentacja jest w bardzo wczesnej fazie rozwoju. Angielska dokumentacja zawiera znacznie więcej informacji. Jeśli dobrze znasz język angielski, zapoznaj się z dokumentacją po angielsku.

Artykuł dotyczy tworzenia i rozwijania motywów Wordpressa. Jeżeli chcesz dowiedzieć się więcej o tym jak instalować i używać motywy, sprawdź używanie motywów. Bieżący artykuł różni się od tamtego artykułu, ponieważ omawia techniczne aspekty pisania kodu, w celu tworzenia własnych motywów, a nie informacje o tym jak je uruchomić lub skąd wziąć. Czyli: jak motyw wygląda "od zaplecza".

O co chodzi z motywami Wordpressa

Motyw WordPressa to zbiór plików, które razem tworzą wygląd i funcjonalność strony opartej na Wordpressie. Każdy motyw może być inny, oferując wiele możliwości właścicielom stron. Pozwala to na błyskawiczną zmianę ich wyglądu.

Możesz opracować motyw WordPressa dla własnego użytku, do projektu klienta, lub zgłosić go do Katalogu Motywów WordPressa. Po co budować własny Motyw?

  • Aby uczynić wygląd Twojej strony naprawdę wyjątkowym.
  • Żeby wykorzystać szablony, tagi i Pętlę WordPressa, aby osiągać więcej wyników i wyglądów strony.
  • Aby dostarczać alternatywne szablony dla wybranych funkcji strony, takich jak strony kategorii i wyniki wyszukiwania.
  • Aby szybko przełączać się, między dwoma layoutami witryny lub skorzystać ze zmieniania motywu lub stylu, żeby umożliwić właścicielom strony zmianę jej wyglądu.

Motywy WordPressa mają wiele zalet.

  • Oddzielają style oraz Pliki motywu od systemu plików, więc strona zaktualizuje się bez większych zmian swojego wyglądu.
  • Umożliwiają specyficzne dla danego motywu dostosowanie funkcji strony.
  • Pozwalają na szybkie zmiany w wyglądzie i układzie strony.
  • Typowy posiadacz strony nie musi uczyć się CSS, HTML i PHP, aby posiadać świetnie wyglądającą stronę.

Dlaczego powinieneś zbudować własny motyw Wordpressa? Oto pytanie.

  • To możliwość, aby dowiedzieć się więcej o stylach CSS, języku HTML i PHP.
  • Możesz wykorzystać swoją wiedzę o CSS, HTML i PHP w praktyce.
  • To twórcze.
  • To zabawne (zwykle).
  • Jeśli udostępnisz go innym, możesz poczuć się fajnym, że podzieliłeś się i dałeś coś Społeczności WordPressa

Standardy tworzenia motywów

Motywy WordPressa powinny być kodowane tak, aby przestrzegać poniższych standardów:

Budowa motywu

Motywy WordPressa mieszczą się w podkatalogach folderu z motywami (domyślnie: wp-content/themes/) który nie może być bezpośrednio przeniesiony za pomocą pliku wp-config.php. Podkatalogi motywów zawierają wszystkie arkusze stylów, Pliki motywu, opcjonalny plik funkcji (functions.php), skrypty JavaScript oraz obrazki. Na przykład motyw nazwany "test" mieści się w katalogu wp-content/themes/test/. Unikaj używania liczb w nazwie motywu. Może to uniemożliwić wyświetlenie go na liście dostępnych motywów.

WordPress posiada domyślny motyw w każdej nowej instalacji. Przyjrzyj się dokładnie jego plikom, aby zobaczyć z czego motyw jest zbudowany.

Przedstawienie struktury motywów na infografice: Anatomia Motywu WordPressa (en).

Motywy WordPressa zwykle zawierają trzy rodzaje plików. Oprócz tego mogą zawierać grafiki i skrypty JavaScript.

  1. Arkusz stylów style.css odpowiedzialny za wygląd i układ strony.
  2. Pliki motywu, które określają sposób w jaki strona pobiera i wyświetla na stronie informacje z bazy danych.
  3. Opcjonalny plik funkcji (functions.php).

Przyjrzyjmy się im pokolei.

Motywy Potomne

Najprostszy motyw to motyw potomny. Zawiera tylko plik "style.css" oraz grafiki. Jest to możliwe, ponieważ jest "potomkiem/dzieckiem" innego motywu, który jest jego rodzicem.

Szczegółowe informacje na temat motywów potomnych tu: pl:Motywy Potomne.

Arkusz stylów motywu

Oprócz stylów CSS, plik "style.css" musi zawierać informacje o motywie w postaci komentarzy. Nie mogą istnieć dwa motywy z takimi samymi informacjami w nagłówkach, ponieważ będzie to powodowało problemy na stronie wyboru motywu. Jeżeli tworzysz motyw na bazie istniejącego, upewnij się, że zmieniłeś te informacje.

Poniższy przykład to kilka linii początkowych linii arkusza stylów motywu "Twenty Thirteen", zwanych nagłówkiem arkusza styli:

/*
Theme Name: Twenty Thirteen
Theme URI: http://wordpress.org/themes/twentythirteen
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, brown, orange, tan, white, yellow, light, one-column, two-columns, right-sidebar, flexible-width, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, translation-ready
Text Domain: twentythirteen

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/

Przy okazji: Dobrym pomysłem jest wpisanie przy elemencie "Author" nazwy (imienia, nazwiska, pseudonimu) takiego samego jak Twoja nazwa użytkownika na wordpress.org. Ale równie dobrze może to być Twoje prawdziwe imię i nazwisko. Jak chcesz.

Wypisz tagi, które opisują Twój motyw. Pozwoli to innym użytkownikom znaleźć go używając filtra tagów. Tu znajdziesz listę wszystkich dozwolonych tagów.

Nagłówek w postaci komentarza w pliku style.css jest wymagany, aby WordPress był wstanie rozpoznać Twój motyw i w ogóle wyświetlić go w panelu administracyjnym w zakładce Wygląd > Motywy.

Wytyczne arkusza stylów

  • Przestrzegaj Standardów kodowania CSS przy jego tworzeniu.
  • Używaj poprawnego kodu CSS, gdy to możliwe. Wyjątkiem są prefiksy, umożliwiające korzystanie z bogactwa języka CSS3.
  • Nie używaj zbyt wielu hacków CSS. Ale oczywiście możesz to robić, aby zachować kompatybilność strony między przeglądarkami, w szczególności IE. Jeśli to możliwe, wydziel dla nich osobne fragmenty, a nawet pliki.
  • Powinieneś ostylować wszystkie możliwe elementy HTML (chyba, że tworzysz motyw potomny).
    • Tabele, podpisy, obrazy, listy, cytaty, itp.
  • Należy zadbać także o style, które umożliwią wydrukowanie Twojej strony.
    • Możesz załączyć arkusz stylów odpowiedzialnych za wygląd wydruku za pomocą media="print" lub dodać go do głównego pliku arkuszy stylów.

Plik funkcji

Motyw może używać pliku z funkcjami, który znajduje się w głównym katalogu motywu. Jego nazwa to functions.php. Ten plik działa jak wtyczka, and jeżeli jest dostępny w aktualnie używanym motywie, automatycznie się ładuje podczas wczytywania WordPressa (i w panelu administratora i na zewnętrznych stronach). Proponowane użycie:

Domyślny szablon WordPressa posiada plik functions.php z wieloma wymienionymi funkcjami. Możesz wiec używać go jako wzór. Odkąd functions.php w zasadzie działa jako wtyczka, lista referencji funkcji jest najlepszym miejscem z informacjami o tym, co możesz zrobić z tym plikiem.

Informacje jak zdecydować się kiedy dodać funkcje do functions.php, a kiedy do osobnej wtyczki: Możesz dojść do wniosku, że potrzebujesz tej samej funkcji w więcej niż jednym motywie potomnym. Powinieneś wtedy zapisać tę funkcję jako wtyczkę, zamiast dodawać ją do pliku functions.php każdego motywu. Funkcje zawarte we wtyczce są widziane przez wszystkie motywy.

Pliki motywu

Motywy są plikami PHP, używanymi do generowania stron HTML, na które wchodzą odwiedzający. Pliki szablonów składają się z kodu HTML, PHP oraz Tagów szablonów.

Przyjrzyjmy się jak różne szablony mogą zostać częścią motywu.

WordPress umożliwia Ci zdefiniowanie oddzielnych szablonów dla różnych fragmentów strony. Szablony są wybierane i generowane na bazie hierarchii szablonów, w zależności od tego jakie szablony są dostępne w danym motywie.

Jako twórca motywów, możesz wybierać liczbę dostosowań, które dodasz do swojego motywu. Na przykład, w ekstremalnym przypadku, możesz użyć tylko jednego pliku szablonu (index.php) jako szablonu dla wszystkich stron generowanych na Twojej witrynie. Lepszym rozwiązaniem jest korzystanie z różnych plików szablonów. Pozwalają one osiągać różne wyniki w zależności od rodzaju strony, postu, itp.

Lista plików motywu

Poniżej zamieszczono listę plików motywów rozpoznawanych przez WordPressa. Oczywiście Twój motyw może zawierać inne arkusze stylów, obrazy, czy pliki. Po prostu pamiętaj, że poniższe pliki mogą mieć specjalne znaczenie dla Wordpressa -- więcej informacji tu: pl:Hierarchia szablonów.

style.css
Główny arkusz stylów. Motyw musi go posiadać. Plik ten na początku musi mieć nagłówek informacyjny o Twoim motywie.
rtl.css
Arkusz dla języków pisanych od lewej do prawej (Right-to-Left). Będzie załączony automagicznie jeśli kierunek tekstu na stronie jest taki. Możesz go wygenerować za pomocą pluginu RTLer.
index.php
Główny szablon. Jeśli Twój motyw zawiera różne własne szablony, plik index.php musi być dodany.
comments.php
Szablon komentarzy.
front-page.php
Szablon strony głównej (eng. Landing page).
home.php
Szablon strony startowej, który domyślnie jest szablonem głównej strony. Jednak jeśli używasz statycznej strony głównej, ten plik wyświetli stronę z najnowszymi postami.
single.php
Szablon pojedyńczego wpisu. Używany, w razie zapytania o jeden wpis. Dla tego i innych szablonów zapytań, index.php jest używany, gdy brak odpowiedniego szablonu.
single-{typ-posta}.php
Szablon pojedyńczego wpisu, używany w razie zapytania dotyczącego konkretnego typu wpisu. Np. single-book.php będzie użyty do wyświetlenia pojedyńczego wpisu z kategorii "book". index.php jest użyty, gdy brak szablonu dla niestandardowego rodzaju wpisu.
page.php
Szablon pojedyńczej strony (statycznej). Używany, gdy zapytanie dotyczy konkretnej strony.
category.php
Szablon kategorii.
tag.php
Szablon tagu. Użyte w razie zapytania o wpisy oznaczone danymi tagami.
taxonomy.php
Szablon wyrażenia/taksonomii. Używany w razie zapytania o niestandardową taksonomię.
author.php
Szablon autora.
date.php
Szablon daty/czasu. Używany, gdy wywołane są wpisy z konkretnego okresu. Z roku, miesiąca, dnia, godziny, minuty, sekundy.
archive.php
Szablon archiwum. Używany, podczas wyświetlania wpisów z danej kategorii, konkretnego autora czy z określonego czasu. Uwaga! Ten szablon nie zostanie użyty, jeżeli plik category.php, author.php lub date.php istnieje. Wtedy zostanie wykorzystany odpowiedni do danego zapytania plik.
search.php
Szablon wyników wyszukiwania. Używany, podczas wyszukiwania.
attachment.php
Szablon używany do wyświetlenia informacji o pojedyńczym załączniku.
image.php
Szablon załączonego obrazu. Używany, podczas wyświetlenia załączonego obrazu. Jeśli nie istnieje, zostanie wykorzystany 'attachment.php'.
404.php
Szablon strony błędu 404 Not Found. WordPress wyświetli go, kiedy nie może znaleźć wpisu, czy strony, która pasuje do zapytania (np. gdy ktoś wpisze niepoprawny adres URL).

Te pliki mają specjalne znaczenie w odniesieniu do WordPressa. Zastępują, gdy to możliwe index.php, zgodnie z hierarchią szablonów i gdy tag warunkowy zwraca wartość prawda. Na przykład, jeśli wyświetlany jest tylko pojedyńczy post, funkcja [[pl:Conditional Tags#A Single Post page]|is_single()] zwraca prawdę i jeśli w bieżącym motywie istnieje szablon single.php, zostanie użyty do wygenerowania strony.

Najprostszy motyw

Jako minimum, motyw Wordpressa musi zawierać dwa pliki:

  • style.css
  • index.php

Oba z nich znajdują się w folderze motywu. index.php template file jest bardzo elastyczny. Może być użyty do dołączenia wszelkich odwołań do nagłówka, sidebara, stopki, zawartości, kategorii, archiwów, wyszukiwań, błędów i każdej innej strony tworzonej w WordPressie.

Lub, może zostać podzielony na poszczególne pliki szablonów. Jeśli ich nie dodasz, WordPress użyje domyślnych plików lub funkcji, aby wykonały swoją robotę. Na przykład, jeśli nie stworzysz szablonu searchform.php, WordPress ma wbudowaną funkcję, która wyświetli formularz wyszukiwania.

Zwykle tworzone pliki szablonów załączanych do index.php to:

  • comments.php
  • comments-popup.php
  • footer.php
  • header.php
  • sidebar.php

Aby użyć tych szablonów, możesz dodać tagi wewnątrz głównego pliku index.php, żeby dołączyć je tam, gdzie chcesz, aby się pojawiły.

Poniżej przykład użycia include:

<?php get_sidebar(); ?>

<?php get_footer(); ?>

Domyślne pliki niektórych funkcji mogą być przestarzałe lub nieobecne, więc powinieneś dodać te pliki szablonów w swoim motywie. Od wersji 3.0, przestarzałe domyślne pliki umieszczone są w wp-includes/theme-compat. Na przykład, powinieneś dodać header.php dla funkcji get_header() aby pracować bezpieczniei comments.php dla funkcji comments_template().

Więcej informacji o tym, jak różne szablony działają i jak generować w nich różne informacje, przeczytaj dokumentację szablonów.

Niestandardowy szablon strony

Pliki definiujące szablon każdej strony położone są w katalogu The files defining each page template are found in your motywu. Aby stworzyć nowy niestandardowy szablon strony, musisz utworzyć nowy plik. Nazwijmy go np. snarfer.php. Na jego początku napisz:

<?php
/*
Template Name: Snarfer
*/
?>

Powyższy kod opisuje plik snarfer.php jako szablon "Snarfer". Oczywiście, "Snarfer" to przykładowa nazwa kategorii i pliku i możesz ją zamienić na prawie każdy inny tekst, aby zmienić nazwę szablonu strony. Nazwa tego szablonu wyświetli się w Edytorze motywu jako link do edycji tego pliku.

Plik może mieć prawie dowolną nazwę, kończącą się rozszerzeniem .php (sprawdź, jakie są zarezerwowane nazwy plików motywu, żeby dowiedzieć się czego nie używać; są to specjalne nazwy plików zarezerwowane przez WordPressa do specyficznych zastosowań).

Co znajdzie się za tymi pięcioma wierszami zależy od Ciebie. Reszta kodu, który napiszesz, będzie kontrolować jak wyświetlą się strony używające szablonu Snarfer. Opisy różnych funkcji WordPressa znajdziesz w tagach szablonów. Wygodne może być skopiowanie innego szablonu (np. page.php albo index.php) pod nazwą snarfer.php i dodanie odpowiedniego komentarza na początku pliku (te pięć linii). Następnie poprostu zmodyfikujesz kod HTML lub PHP, zamiast pisać wszystko od początku. Przykłady znajdziesz niżej. Gdy stworzysz szablon strony i umieścisz w katalogu z motywem, będzie można z niego korzystać podczas tworzenia albo edytowania strony. (Mała informacja: podczas tworzenia/edycji strony, opcja wyboru szablonu nie wyświetli się, jeśli nie stworzyłeś żadnego lub zapomniałeś umieścić go w katalogu z motywem.)

Pliki szablonów zależne od zapytania

WordPress może wczytywać różne szablony w zależności od rodzaju zapytania. Są na to dwa sposoby: można skorzystać z wbudowanej hierarchii szablonów lub z tagów warunkowych w pętli pliku szablonu.

Aby skorzystać z hierarchii szablonów, musisz stworzyć odpowiednie szablony, które automatycznie zostaną użyte zamiast domyślnego index.php. Na przykład, jeśli stworzyłeś dla Twojego motywu szablon category.php i jest wywołana kategoria, zamiast index.php zostanie użyty właśnie category.php. Jeśli nie istnieje plik category.php, Wordpress użyje uniwersalnego index.php.

Możesz zrobić coś więcej! Gdy stworzysz plik nazwany, np. category-6.php, zostanie on użyty zamiast category.php podczas generowania strony kategorii z numerem ID równym 6. (Numer ID kategorii znajdziesz w Kokpicie w zakładce 'Kategorie', klikając 'Edytuj kategorię'. Numer wyświetli się na pasku adresu: '...categories.php?action=edit&cat_ID=3'. '3' jest numerem kategorii). Więcej szczegółów o tym procesie: pl:Szablony kategorii.

Jeśli w swoim motywie potrzebujesz większej kontroli nad tym, które pliki szablonów są używane, możesz użyć tagów warunkowych. Tag warunkowy po prostu sprawdza, czy dany warunek jest spełniony (w danej pętli WordPressa). Jeśli tak, możesz wtedy wczytać konkretny szablon, lub wyświetlić na ekranie odpowiedni tekst (w zależności od warunku).

Na przykład, aby użyć odmiennego szablonu w postach znajdujących należących do danej kategorii, potrzebny jest taki kod:

<?php
if ( is_category( '9' ) ) {
    get_template_part( 'single2' ); // szuka postów z kategorii o ID '9'
} else {
    get_template_part( 'single1' ); // używa tego do postów z pozostałych kategorii
}
?>

Lub, używając zapytań:

<?php
$post = $wp_query->post;
if ( in_category( '9' ) ) {
    get_template_part( 'single2' );
} else {
    get_template_part( 'single1' );
}
?>

Ten przykładowy kod wyświetli różne szablony w zależności od kategorii wyświetlanego posta. Warunki zapytań nie ograniczaja się do kategorii. Poczytaj o tagach warunkowych, by poznać wszystkie opcje.

Definiowanie niestandardowych szablonów

Można użyć pluginów, aby określić dodatkowe szablony, wyświetlające się według Twoich kryteriów. Korzysta się z tej zaawansowanej funkcji za pomocą zaczepu akcji "template_redirect". Więcej informacji o tworzeniu wtyczek, znajdziesz w materiałach o pl:API wtyczek.

Załączanie plików szablonów

Aby załadować szablon (ale nie nagłówek, pasek boczny, stopka - one są predefiniowane funkcjami takimi jak get_header()) do innego szablonu, możesz użyć get_template_part(). Ułatwia to wielokrotne wykorzystanie bloków kodu.


C.D.N.