Struktura plików w Wordpress - okładka

Struktura plików w WordPress

Struktura plików w WordPress – tworzenie motywu

Jednym ze sposobów na tworzenie motywów w WordPress jest stworzenie struktury plików o określonych nazwach. Nazwa pliku zależy od funkcji jaką pełni dany plik. Taki plik może stanowić odrębną część motywu – na przykład plik single.php – odpowiadający za stronę pojedynczego wpisu, bądź też mogą być elementem składowym strony lub podstrony – takimi plikami są na przykład header.php, czy footer.php.

Dokładne omówienie poszczególnych plików znajduje się z WordPress Codex – dokumentacji WordPressa. Bardzo obszernie zostało to też przedstawione na diagramie dostępnym TUTAJ.

Pliki główne

Najważniejszym plikiem jest index.php, który jest plikiem głównym. To na nim wszystko się zaczyna i na nim wszystko się kończy. Jeżeli będziesz chciał wywołać plik, którego nie ma, bądź do którego nie masz dostępu to zostaniesz przekierowany właśnie do pliku index.

Kolejnym bardzo istotnym plikiem jest plik style.css. Najczęściej zawiera on jedynie tzw. deklarację motywu, czyli dane o: autorze, miniaturce motywu w panelu, licencji, adresie www itp. Poniżej zamieszczam przykład:


/*
Theme Name: devszczepaniak.pl
Theme URI: https://devszczepaniak.pl
Author: Dominik Szczepaniak
Author URI: https://devszczepaniak.pl
Description: Devszczepaniak blog theme
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: devszczepaniak
*/

Innym, równie ważnym plikiem jest plik functions.php. Ten plik odpowiada za obsługę funkcjonalności na naszej witrynie. To właśnie tutaj możemy włączyć lub wyłączyć poszczególne funkcje, zarządzać innymi plikami, chować i pokazywać elementy na przykład admin bar.

Właśnie w tym pliku powinniśmy dołączać skrypty oraz style do naszego motywu. Spora część początkujących WordPress developerów popełnia ten błąd, że style i skrypty dodaje poprzez standardowe znaczniki HTML w plikach header.phpfooter.php. Do dołączania stylów i skryptów w WordPress służą funkcje wp_enqueue_style() oraz wp_enqueue_script(). Poniżej przedstawiam przykład poprawnego podpięcia skryptu:


function load_scripts() {
    wp_enqueue_style('roboto', 'https://fonts.googleapis.com/css?family=Roboto', false, null);
    wp_enqueue_style('font-awesome', 'https://use.fontawesome.com/releases/v5.0.13/css/all.css', false, null);
    wp_enqueue_script('app', get_template_directory_uri() . '/dist/js/bundle.js', null, null, true);
}
add_action('wp_enqueue_scripts', 'load_scripts', 100);

W przykładzie warto zwrócić uwagę, że podczas dodawania skryptu ostatni parametr ma wartość true, co powoduje, że skrypt zostaje załadowany na końcu znacznika body.

Pliki struktur

Struktura plików w WordPress obsługuje także inne pliki. Takimi są na przykład:      page.phparchive.php, single.php, tag.php, taxonomy.php, category.php czy też author.php.

Pliki te pozwalają na stworzenie stron dla tagów, postów, archiwów, taksonomii itd. Ponadto WordPress umożliwia na stworzenie unikatowego pliku dla poszczególnych elementów z tych zbiorów. Odbywa się to poprzez stworzenie osobnego pliku. Na przykład gdybyśmy chcieli stworzyć osobną stronę dla jakiejś kategorii możemy stworzyć plik w oparciu o schemat category-$slug.php lub category-$id.php, gdzie w miejsce $id/$slug wpisujemy id lub slug kategorii. Analogicznie odbywa się to dla pozostałych plików wymienionych wcześniej, z tym że na przykład dla autora możemy podać imię, a dla archiwum posttype. Każdy z plików może przyjmować swoje określone parametry.

Do tej kategorii zaliczyłbym również pliki tj. 404.php, który wyświetla się gdy zasób nie zostanie odnaleziony na stronie, czy też search.php.

Struktura plików w WordPress - blog

Pliki elementów składowych

Do tej kategorii można zaliczyć wszelkie pliki, które nie mogą wyświetlić się samodzielnie, gdyż są jedynie elementami na stronie, takimi jak sidebar, header czy footer. Nazwy plików odpowiadają przeznaczeniu elementu, na przykład footer.php.  Każdy z elementów można dołączyć do plików struktur. Służą do tego funkcje takie jak: get_header(), get_footer(), get_sidebar().

Możemy też tworzyć kilka wersji takich plików. Załóżmy że nie chcemy, aby na stronach innych niż główna nasz header posiadał logo. W tym celu tworzymy plik o nazwie na przykład header-no_logo.php, w którym pozbywamy się loga. Dołączając ten plik należy pamiętać, aby w funkcji dodać nazwę rozszerzenia po myślniku, w naszym przypadku get_header('no_logo').

Po więcej szczegółów zapraszam do Codexa. Jeśli masz jakieś pytania, bądź też zapomniałem wspomnieć o czymś ważnym, napisz mi o tym w komentarzu!