Verwenden von bedingten Tags in WordPress
Veröffentlicht: 2012-12-27Werfen wir einen Blick darauf, wie Sie benutzerdefinierte Funktionen in Ihren Themen an verschiedenen Hook-Positionen ausführen, je nachdem, ob bestimmte Bedingungen erfüllt sind und „Ja“ zurückgegeben wird.
Wenn Sie ein Premium-Design-Framework wie Genesis verwenden, haben Sie Zugriff auf ein Benutzerhandbuch.
Das Benutzerhandbuch enthält im Allgemeinen Codeausschnitte mit benutzerdefinierten Funktionen.
Diese benutzerdefinierten Funktionen können an bestimmten Themenstandorten mithilfe Ihrer Themen-Action-Hooks ausgeführt werden.
Alles, was Sie tun müssen, ist das Code-Snippet in die Datei functions.php Ihres Child-Themes einzufügen, um Ihre Theme-Funktionen anzupassen.
Jedes Theme-Framework verwendet unterschiedliche Hooks, aber sie machen so ziemlich dasselbe, sie haben nur unterschiedliche Namen wie:
thesis_after_post genesis_after_post woo_post_after
Diese 3 Beispiele werden alle ausgeführt, nachdem der Beitrag fertig ist, wo Sie vielleicht einen Widget-Bereich, ein Banner oder ein E-Mail-Opt-in-Feld mit Schaltflächen zum Teilen/Folgen in sozialen Netzwerken hinzufügen möchten.
Aber was ist, wenn Sie möchten, dass die benutzerdefinierte Funktion nur an einer bestimmten Hook-Position ausgeführt wird, basierend auf bestimmten Bedingungen wie z. Zum Beispiel:
- Nur bei einzelnen Beiträgen: is_single()
- Nur bei Beiträgen in einer bestimmten Kategorie: is_category()
- Nur auf einer Archivseite: is_archive()
- Nur auf der Startseite: is_home()
Durch das Hinzufügen eines bedingten Tags zu Ihrer benutzerdefinierten Funktion, die an der Hook-Position Ihres Themas ausgeführt wird, können Sie die Funktion nur ausführen, wenn die Bedingung „Ja“ zurückgibt.
Sobald Sie mit benutzerdefinierten Funktionen vertraut sind und verstehen, wo und wie die Aktionshaken Ihres Themas funktionieren, können Sie einen Schritt weiter gehen, indem Sie bedingte Tags oder bedingte Anweisungen verwenden, wie einige Entwickler sie nennen.
Wie verwende ich bedingte Anweisungen?
Beispiele für bedingte Tags
Hier sind einige gängige Bedingungs-Tags, die von WordPress-Designern sowie Theme- und Plugin-Entwicklern verwendet werden.
is_home() is_category() is_single() is_page()
Lassen Sie uns zunächst einen Blick auf die Verwendung von bedingten Tags werfen, die auf mehreren Anweisungen basieren.
is_single & in_category
if (is_single() && in_category('134'))
if (is_single() && in_category('web-design'))
Diese beiden Code-Snippets machen genau dasselbe und enthalten 2 Bedingungs-Tags.
Die erste verwendet die Kategorie-ID 134 und die zweite den Kategorie-Slug „Web-Design“.
Jede Funktion, die Sie in diesen Code einfügen, wird nur für einzelne Posts in der Kategorie ausgeführt, die eine Post-ID von 134 oder einen Seiten-Slug „Webdesign“ enthält. Dies ist eindeutig die Kategorie Webdesign.
Parameter
Wie Sie im obigen Beispiel sehen können, können Sie verschiedene Parameter mit bedingten Tags verwenden, wie zum Beispiel:
- Post-ID
- Titel des Beitrags
- Post-Slug
Einige bedingte Tags wie das is_home()-Tag akzeptieren keine Parameter, wahrscheinlich weil sie keine wirklich benötigen.
ist_seite
if (is_page('4289'))
if (is_page('contact'))
Diese beiden Bedingungs-Tags machen auch genau dasselbe.
Die erste verwendet die Seiten-Post-ID 4289 und die zweite den Seitennamen und den Slug „contact“.
Die Funktionen, die Sie mit diesem Tag einschließen, werden nur auf der Kontaktseite ausgeführt.
Startseite Bedingte Tags
Die häufigsten Anwendungen für die Verwendung der is_home-Tags wären, etwas nur auf der Startseite anzuzeigen oder die Startseite von der Funktion auszuschließen.
ist Zuhause
if (!is_home()
Dieser Code enthält das ! vor dem bedingten Tag home_page, sodass die Homepage von der Funktion ausgeschlossen wird.
if (is_home()
Dieser Code erstellt eine Bedingung, die nur für die Startseite gilt.
Arbeitsbeispiel
Wenn Sie den folgenden Code mit einem Code-Editor kopieren und in die Funktionsdatei Ihrer untergeordneten Themen einfügen, werden Sie feststellen, dass Text nach der Kopfzeile nur bei einzelnen Beiträgen gedruckt wird.
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'; } }
Der obige Code verwendet die Hook-Position genesis_entry_footer
mit dem bedingten Tag is_singular('post')
und druckt den Text nach dem Inhalt nur bei einzelnen Beiträgen. Dies ist ein klassisches Beispiel, das zeigt, wie Sie Bedingungs-Tags in einer benutzerdefinierten Funktion mit Ihren Themen-Action-Hooks verwenden.
Bedingte Tags mit Arrays
Sie können Ihrer bedingten Anweisung auch ein Array hinzufügen.
is_page (Array
if (is_page(array('contact','37290'))
Sie können diesem Array weitere Seiten hinzufügen, indem Sie sie einfach durch ein Komma getrennt in dieses Array einfügen.
Diese Funktion wird nur auf der Kontaktseite und der Seite ausgeführt, die eine Beitrags-ID von 37290 enthält.
Ausgabe von Text/HTML
Wenn Sie nur etwas Text oder HTML anzeigen möchten, können Sie eine bedingte Anweisung zu den Aktions-Hooks Ihres Themas hinzufügen. Der einfachste Weg, dies zu tun, wäre, das bedingte Tag mit einem Hook-Plugin in Ihren HTML-Code einzufügen.
if ( ! is_home()) { echo'Your Text Here'; }
Nehmen wir eine gemeinsame Funktion mit Aktionshaken und fügen ein bedingtes Tag hinzu.
Bedingte Tags in Genesis
Sie können einfach eines der Code-Snippets des Genesis-Designs zur Verwendung in StudioPress-Designs hinzufügen und dem Code ein Bedingungs-Tag hinzufügen.
/** 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; }
Dieser Code ermöglicht es dem Benutzer, die Videokategorieseite mithilfe einer benutzerdefinierten Klasse zu gestalten.
Der verwendete Parameter ist der Video-Tutorial-Slug, Sie könnten jedoch die post.id oder den Titel in Ihrem Bedingungs-Tag verwenden.
Bedingte Tags in der Abschlussarbeit
Nehmen wir eine benutzerdefinierte Funktion aus dem Benutzerhandbuch für DIY-Designs und fügen eine bedingte Anweisung hinzu.
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' );
Dadurch wird das Navigationsmenü nur auf der Kontaktseite ausgeblendet.
Wir könnten verschiedene Parameter für die Kontaktseite verwenden, einschließlich des Seiten-Slugs, der Post-ID oder des Seitennamens.
Wohin mit dem Code?
Wenn Sie ein Premium-Theme-Framework verwenden, können Sie den Code in die Datei functions.php Ihrer Child-Themes einfügen.
Diese Frameworks bieten alle ein Hook-Plugin oder einen Manager, mit dem Sie den Code an der Hook-Position einfügen können, an der der Code basierend auf Ihren bedingten Tags ausgeführt werden soll.
- Woo-Hook-Manager
- Genesis Einfache Haken
- Thesis, Headway & WordPress Hooks
Natürlich müssen Sie den Action-Hook nicht in Ihren Code aufnehmen, wenn Sie einen Hook-Manager verwenden.
Eine andere Möglichkeit besteht darin, die Bedingungs-Tags direkt in die Vorlagendateien Ihres Themas an der Stelle einzufügen, an der Sie die Funktion basierend auf Ihren Bedingungen ausführen möchten. Dies ist keine bewährte Methode, da Sie den Code verlieren, wenn Sie das Design aktualisieren.
Es empfiehlt sich immer, ein untergeordnetes Thema zu erstellen und dort Änderungen an Ihren Vorlagendateien vorzunehmen. Besser noch, verwenden Sie die benutzerdefinierten Funktionen, die Ihr Theme-Entwickler bereits erstellt hat, und fügen Sie den Code mit Ihren Bedingungs-Tags in Ihre Child-Theme-Funktionsdatei ein, sobald das Testen bewiesen hat, dass es funktioniert.
Bedingte WordPress-Tags und Beispiele
Eine Liste aller bedingten WordPress-Tags mit Beispielen finden Sie im WordPress Codex.
Themenspezifische bedingte Tags
Einige Premium-Designs verwenden auch ihre eigenen bedingten Tags, die für ihr Design-Framework einzigartig sind.
Woo Commerce ist eines davon: Beispiele:
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.
Erfahren Sie mehr über die Verwendung von bedingten Tags mit Woo Commerce.
Fazit
Die Verwendung eines Designs, das eine große Auswahl an vom Entwickler getesteten Code-Snippets bietet, ist ein großer Bonus. Auf diese Weise können Sie eines der bedingten Tags auswählen, die WordPress anbietet, und es Ihrem Code-Snippet hinzufügen, um Ihr Design nach Ihren Wünschen anzupassen.