Jak dodać logikę warunkową do motywu WordPress?

Opublikowany: 2021-02-25

Tworzenie strony internetowej za pomocą WordPress zapewnia dużą elastyczność w zakresie tego, co możesz zrobić, zarówno pod względem projektu, jak i funkcjonalności. A gdy zagłębisz się w tworzenie motywów, zauważysz, że czasami musisz skierować na określoną stronę, kategorię lub typ posta, aby uzyskać coś wyjątkowego. W tym miejscu logika warunkowa może znacznie ułatwić pracę.

Logika warunkowa to potężna funkcja języków programowania (w naszym przypadku PHP). Zasadniczo możemy użyć kodu, aby sprawdzić, czy dany warunek istnieje, a następnie zrobić coś konkretnego, jeśli ten warunek jest spełniony. Prostym przykładem może być sprawdzenie, czy użytkownik jest aktualnie na stronie głównej naszej witryny. Korzystając z logiki warunkowej, możemy w takiej sytuacji załadować suwak lub inną specjalną zawartość.

Jeśli chodzi o WordPress, w oprogramowanie wbudowanych jest wiele przydatnych tagów warunkowych, które pozwalają nam testować różne scenariusze. Są dobrze udokumentowane i pozwalają wprowadzić wyższy poziom funkcjonalności do Twojej witryny.

Dzisiaj przyjrzymy się kilku najczęściej używanym tagom warunkowym i sposobom ich implementacji we własnej witrynie.

Uwaga dotycząca używania warunkowych tagów

Tagi warunkowe to fragmenty kodu PHP i powinny znaleźć się w aktywnym motywie witryny. Istnieje wiele miejsc, w których można użyć logiki warunkowej w motywie.

Jeśli jeszcze tego nie zrobiłeś, dobrym pomysłem jest zapoznanie się z Hierarchią szablonów WordPress, aby dowiedzieć się, jak działają pliki motywów.

A zanim spróbujesz zaimplementować nowy kod w działającej witrynie, najlepiej jest skonfigurować środowisko programistyczne (pomostowe), aby najpierw przetestować różne rzeczy. Pamiętaj, że jeden fałszywy ruch z PHP może nadać Twojej witrynie przerażający „biały ekran śmierci”. Zachowaj więc szczególną ostrożność podczas testowania, zanim zaczniesz pracować w działającej witrynie.

to dom()

Ten powoduje duże zamieszanie wśród programistów. Patrząc na tag, zakładasz, że is_home() będzie używana do sprawdzania strony głównej Twojej witryny. To nie o to chodzi.

W rzeczywistości szuka strony przypisanej jako strona postów, która jest ustawiona w Ustawienia> Czytanie w panelu WordPress. Domyślnie WordPress używa Twojej strony głównej do wyświetlania postów – ale większość witryn używa zamiast tego statycznej strony głównej.

Na przykład, jeśli przypisałeś stronę o nazwie „Blog” jako stronę Postów, to właśnie tego będzie szukać is_home() .

 <?php // If this the Posts page, display a message. if ( is_home() ): echo '<h2>Thanks for visiting our blog!</h2>'; endif; ?>

is_front_page()

I odwrotnie, is_front_page() szuka dowolnej strony ustawionej jako strona główna Twojej witryny — niezależnie od tego, czy jest statyczna, czy nie. Trzeba przyznać, że nie jest to najbardziej oczywista rzecz na świecie, gdy uczysz się tworzyć własne motywy. Ale wiedza, którego tagu użyć, jest kluczowa.

Zaletą tego konkretnego tagu jest to, że nawet jeśli później przypiszesz inną stronę jako stronę główną, nadal będziesz kierować reklamy we właściwe miejsce. Istnieją bardziej wyraźne sposoby kierowania na strony, ale ten zapewnia ochronę w przypadku zmiany.

 <?php // If this is the home page, show a special message. if ( is_front_page() ) { ?> <h1>Welcome</h1> <?php // Otherwise, show the page title. } else { ?> <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> <?php } ?>

is_single() i is_page()

Każdy z tych znaczników spełnia podwójną funkcję. is_single() sprawdza, czy bieżący adres URL jest postem. Może to być standardowy post na blogu, załącznik lub należeć do niestandardowego typu postu.

Podobnie is_page() zwróci true, jeśli bieżący adres URL jest stroną. Domyślnie oba tagi są kierowane na wszelkie treści objęte parasolem strony lub posta. Jest to wspólny wątek wśród wielu tagów warunkowych.

 <?php // Target all posts. if ( is_single() ): echo 'You are on a single post.'; endif; // Target all pages. if ( is_page() ): echo 'This is a page'; endif; ?>

Ale możesz również wykorzystać te tagi, aby kierować reklamy na konkretny post lub stronę, dodając identyfikator lub informację.

 <?php // Target About Us if ( is_page( 'about-us' ) ): ?> <a href="#"></a> <?php endif; ?>

Korzystanie z tablicy pozwoli Ci kierować do wielu fragmentów treści.

 <?php // Target About Us and Contact Us pages. if ( is_page( array('about-us', 'contact-us') ) ): ?> <a href="#"></a> <?php endif; ?>

is_tax() i has_term()

Taksonomie odgrywają dużą rolę w organizacji treści w witrynie. Dwie z najczęstszych to kategorie i tagi – które mają własne tagi warunkowe. Ale WordPress umożliwia nam również tworzenie własnych taksonomii.

Na przykład, jeśli Twoja witryna zawiera recenzje muzyki, możesz mieć taksonomię o nazwie „Gatunek”. Stamtąd można było wymienić określone gatunki muzyczne w ramach tej taksonomii, takie jak „Rock”, „Hip-Hop” i „Jazz”.

is_tax() kieruje do strony archiwum taksonomii. Pozostając przy naszym przykładzie recenzji muzyki, ten tag zostanie uruchomiony (wejdzie w życie), gdy znajdziemy się na stronie archiwum dla każdego z określonych gatunków.

 <?php // Display a message on our Genre archive pages. if (is_tax('genre','rock','hip-hop','jazz') ): echo '<h2>This is a genre archive. Enjoy!</h2>'; endif; ?>

has_term() służy do kierowania bieżącego wpisu na podstawie tego, do której taksonomii należy. Jest to przydatne, jeśli na przykład chcemy dodać specjalną grafikę do postów w każdym gatunku muzyki na naszej stronie.

 <?php // Show an image for the Rock genre. if (has_term('rock','genre') ): ?> <?php endif; ?>

is_page_template()

Po zapoznaniu się z hierarchią szablonów motywu możesz utworzyć własne niestandardowe szablony stron. is_page_template() pozwala wskazać aktualnie używany szablon strony (niezależnie od tego, czy jest niestandardowy). Możesz albo sprawdzić, czy w ogóle używany jest jakiś szablon strony, albo poszukać konkretnego.

Musisz jednak być ostrożny, szukając konkretnego szablonu strony. Ponieważ ten tag sprawdza istnienie nazwy pliku, warunek może przestać działać, jeśli nazwa szablonu zostanie zmieniona. Będziesz musiał zaktualizować swój kod, aby odzwierciedlić wszelkie zmiany nazw plików.

 <?php // Add a search form to the Services page template. if (is_page_template('services.php') ): ?> <?php get_search_form(); ?> <?php endif; ?>

Wszystkie warunki spełnione

Chociaż było to tylko krótkie wprowadzenie do tego, jak można użyć logiki warunkowej, miejmy nadzieję, że zaostrzy to Twój apetyt na dalsze uczenie się.

Po opanowaniu warunków warunkowych będziesz mógł dostosować swoją witrynę w sposób, który w przeciwnym razie byłby prawie niemożliwy.

Mogą zapewnić precyzyjną kontrolę nad wyglądem i układem motywu, jednocześnie korzystając ze wszystkich zalet korzystania z systemu CMS.