Tworzysz stronę internetową i potrzebujesz pomocy?

Pod koniec ubiegłego roku (2021) opublikowałem artykuł o tym, jak w prosty sposób stworzyć w WordPressie własne typy postów (Custom Post Types). Niedawno dostałem pytanie, jak można dla własnego typu postów stworzyć różny wygląd postu, zależnie od tego, do jakiej kategorii będzie przypisany.

Szablon własnego typu postów w WordPressie zależny od…

Korzystając z motywów typu Divi czy Elementor, można zrobić to za pomocą kilku kliknięć, tworząc odpowiednie szablony strony dla danego tupu postu, przypisane do konkretnych kategorii. Ale podobny efekt można uzyskać niezależnie od motywu, za pomocą kilku linijek PHP.

Ten artykuł (poradnik) będzie w pewnym sensie rozwinięciem poradnika o własnych typach postów, o którym wspomniałem na początku, więc będę opierał się na założeniach i informacjach w nim opisanych.

I tak w opisywanym tam przypadku, za wygląd pojedynczego wpisu w ramach własnego typu postów odpowiada plik single-newslog.php, gdzie znajduje się cała struktura HTML, odpowiedzialna za wyświetlenie zawartości postu/wpisu.

Zaczynamy od zmiany nazwy tego pliku (single-newslog.php) np. na single-newslog01.php, oraz utworzeniu – choćby na bazie tego samego pliku – pliku single-newslog02.php z alternatywnym wyglądem. Zależnie od potrzeb.

Kolejny krok, to utworzenie pliku single-newslog.php, ale tym razem bez zawartości związanej z wyglądem (prezentacją treści), a z regułą, która będzie decydować, kiedy i jaki plik wczytać (w naszym przypadku single-newslog01.php lub single-newslog02.php):

<?php
if ( in_category( 123 ) ) {
	include( get_stylesheet_directory() . '/single-newslog01.php' );
} else {
	include( get_stylesheet_directory() . '/single-newslog02.php' );
}

W tym przypadku dla postów należących do kategorii o identyfikatorze 123 będzie wczytywany szablon z pliku single-newslog01.php, a dla pozostałych single-newslog02.php.

Oczywiście jest to wersja z jednym podstawowych warunkiem, ale bez problemu całość można rozbudować o dodatkowe warunki, zależnie od potrzeb.

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Tworzysz stronę internetową i potrzebujesz pomocy?
Patryk
Kurs "WordPress: Pierwsze kroki" (na dobry początek)