Używanie tagów warunkowych w WordPress
Opublikowany: 2012-12-27Przyjrzyjmy się, jak wykonać niestandardowe funkcje w twoich motywach w różnych lokalizacjach zaczepów w oparciu o spełnione określone warunki i zwracając tak.
Jeśli korzystasz z platformy motywów premium, takiej jak Genesis, będziesz mieć dostęp do przewodnika użytkownika.
Podręcznik użytkownika zazwyczaj zawiera fragmenty kodu zawierające funkcje niestandardowe.
Te niestandardowe funkcje mogą być wykonywane w określonych lokalizacjach motywów za pomocą haków akcji motywów.
Wszystko, co musisz zrobić, to wkleić fragment kodu do pliku functions.php motywów podrzędnych, aby dostosować funkcje motywu.
Każda struktura tematyczna używa różnych punktów zaczepienia, jednak robią to w zasadzie to samo, po prostu mają różne nazwy, takie jak:
thesis_after_post genesis_after_post woo_post_after
Wszystkie te 3 przykłady są wykonywane po zakończeniu postu, w którym możesz dodać obszar widżetów, baner lub pole wyboru e-maila z przyciskami udostępniania/obserwacji.
Ale co, jeśli chcesz, aby funkcja niestandardowa była wykonywana tylko w określonej lokalizacji zaczepienia w oparciu o określone warunki, takie jak? Na przykład:
- Tylko w pojedynczych postach: is_single()
- Tylko w postach z określonej kategorii: is_category()
- Tylko na stronie archiwum: is_archive()
- Tylko na stronie głównej: is_home()
Dodanie tagu warunkowego do funkcji niestandardowej, która jest wykonywana w lokalizacji zaczepienia motywów, umożliwia wykonanie funkcji tylko wtedy, gdy warunek zwróci tak.
Gdy już nauczysz się korzystać z funkcji niestandardowych i zrozumiesz, gdzie i jak działają haki akcji motywów, możesz pójść o krok dalej, używając tagów warunkowych lub instrukcji warunkowych, jak nazywają je niektórzy programiści.
Jak więc używać instrukcji warunkowych?
Przykłady tagów warunkowych
Oto kilka typowych tagów warunkowych używanych przez projektantów WordPress, a także twórców motywów i wtyczek.
is_home() is_category() is_single() is_page()
Najpierw przyjrzyjmy się używaniu tagów warunkowych opartych na wielu instrukcjach.
jest_single i w_kategorii
if (is_single() && in_category('134'))
if (is_single() && in_category('web-design'))
Oba te fragmenty kodu robią dokładnie to samo i zawierają 2 tagi warunkowe.
Pierwsza posługuje się identyfikatorem kategorii 134, a druga posługuje się kategorią „web-design”.
Jakakolwiek funkcja, którą umieścisz w tym kodzie, będzie wykonywana tylko na pojedynczych postach w kategorii, która zawiera identyfikator posta 134 lub slug strony 'web-design'. To jest oczywiście kategoria projektowania stron internetowych.
Parametry
Jak widać w powyższym przykładzie, możesz używać różnych parametrów z tagami warunkowymi, takimi jak:
- Identyfikator posta
- Tytuł posta
- Post Slug
Niektóre znaczniki warunkowe, takie jak znacznik is_home(), nie wykluczają żadnych parametrów, prawdopodobnie dlatego, że tak naprawdę ich nie potrzebują.
is_page
if (is_page('4289'))
if (is_page('contact'))
Oba te tagi warunkowe również robią dokładnie to samo.
Pierwsza używa identyfikatora posta na stronie 4289, a druga nazwy strony i slug 'kontakt'.
Funkcje, które umieścisz w tym tagu, będą wykonywane tylko na stronie kontaktowej.
Tagi warunkowe na stronie głównej
Najczęstsze zastosowania znaczników is_home to wyświetlanie czegoś tylko na stronie głównej lub wykluczenie strony głównej z funkcji.
to dom
if (!is_home()
Ten kod zawiera ! przed tagiem warunkowym home_page, aby wykluczyć stronę główną z funkcji.
if (is_home()
Ten kod tworzy warunek, który dotyczy tylko strony głównej.
Przykład pracy
Jeśli skopiujesz i wkleisz poniższy kod za pomocą edytora kodu, do pliku funkcji motywów potomnych, zobaczysz, że wypisuje tekst po nagłówku tylko w pojedynczych postach.
add_action( 'genesis_entry_footer', 'add_content_after_single_posts' ); function add_content_after_single_posts() { if ( is_singular('post') ) { echo 'Content Added After Single Post Entry Footer'; } }
Powyższy kod używa pozycji haka genesis_entry_footer
ze znacznikiem warunkowym is_singular('post')
i drukuje tekst po treści tylko w pojedynczych postach. To jest klasyczny przykład pokazujący, jak używać tagów warunkowych w funkcji niestandardowej z haczykami akcji motywów.
Tagi warunkowe z tablicami
Możesz również dodać tablicę do instrukcji warunkowej.
is_page (tablica
if (is_page(array('contact','37290'))
Możesz dodać więcej stron do tej tablicy, umieszczając je w tej tablicy oddzielone przecinkiem.
Ta funkcja zostanie wykonana tylko na stronie kontaktowej i stronie zawierającej identyfikator postu 37290.
Wyprowadzanie tekstu/HTML
Jeśli chcesz po prostu wyświetlić jakiś tekst lub kod HTML, możesz dodać instrukcję warunkową do haków akcji motywów. Najprostszym sposobem, aby to zrobić, byłoby wklejenie tagu warunkowego z kodem HTML za pomocą wtyczki hook.
if ( ! is_home()) { echo'Your Text Here'; }
Weźmy wspólną funkcję z hakiem akcji i dodajmy tag warunkowy.
Tagi warunkowe w Genesis
Możesz łatwo dodać jeden z fragmentów kodu motywu Genesis do użycia w motywach StudioPress i dołączyć tag warunkowy do kodu.
/** Add custom body class to video category */ add_filter( 'body_class', 'add_body_class' ); function add_body_class( $classes ) { if ( is_category( 'video-tutorials' ) ) $classes[] = 'custom-class'; return $classes; }
Ten kod umożliwia użytkownikowi stylizowanie strony kategorii wideo przy użyciu niestandardowej klasy.
Użytym parametrem jest slug wideo samouczka, ale możesz użyć post.id lub title w tagu warunkowym.
Tagi warunkowe w pracy dyplomowej
Weźmy niestandardową funkcję z podręcznika użytkownika motywów DIY i dodajmy instrukcję warunkową.
function hide_nav_menu() { if(is_page ( 'contact-page' ) ) remove_action ( 'thesis_hook_before_header', 'thesis_nav_menu' ); } add_action ( 'thesis_hook_before_html','hide_nav_menu' );
Spowoduje to ukrycie menu nawigacyjnego tylko na stronie kontaktowej.
Możemy użyć różnych parametrów dla strony kontaktowej, w tym informacji o stronie, identyfikatora posta lub nazwy strony.
Gdzie umieścić kod?
Jeśli używasz struktury motywów premium, możesz wkleić kod do pliku functions.php motywów podrzędnych.
Wszystkie te frameworki oferują wtyczkę lub menedżer haka, który umożliwia wklejenie kodu do lokalizacji haka, w której chcesz, aby kod był wykonywany na podstawie tagów warunkowych.
- Menedżer haczyków Woo
- Genesis Proste haki
- Teza, Headway i WordPress Hooki
Oczywiście nie będziesz musiał dołączać haka akcji do swojego kodu, jeśli używasz menedżera haków.
Inną opcją jest wklejenie tagów warunkowych bezpośrednio do plików szablonów motywów w lokalizacji, w której chcesz wykonać funkcję na podstawie swoich warunków. Nie jest to najlepsza praktyka, ponieważ po zaktualizowaniu motywu utracisz kod.
Zawsze stosuj najlepsze praktyki do tworzenia motywu podrzędnego i wprowadzania tam zmian w plikach szablonów. Co więcej, użyj funkcji niestandardowych, które stworzył już programista motywu, i wklej kod do pliku funkcji motywu podrzędnego z tagami warunkowymi, gdy testy wykażą, że działa.
Warunkowe tagi i przykłady WordPress
Listę wszystkich tagów warunkowych WordPressa wraz z przykładami znajdziesz w Kodeksie WordPressa.
Tagi warunkowe specyficzne dla tematu
Niektóre motywy premium używają również własnych tagów warunkowych, które są unikalne dla ich struktury motywu.
Woo Commerce jest jednym z tych: Przykłady:
is_woocommerce() - Returns true if on a page which uses WooCommerce templates is_product_category() - Returns true when viewing a product category archive is_checkout() - Returns true on the checkout page.
Dowiedz się więcej o używaniu tagów warunkowych w Woo Commerce.
Wniosek
Korzystanie z motywu, który oferuje szeroką gamę fragmentów kodu przetestowanych przez dewelopera, to ogromny bonus. W ten sposób możesz wybrać dowolny z tagów warunkowych oferowanych przez WordPress i dodać go do fragmentu kodu, aby dostosować motyw w dowolny sposób.