Wir alle verwenden in unseren Entwicklungen unter WordPress bedingte Anweisungen, oder? Aber kennst du alle eingebauten? Bedingte WordPress-Tags? Sie sind einfach großartig, weil es dank dieser Tags sehr einfach ist, bedingte Anweisungen zu erstellen. Sie können beispielsweise Inhalte nur für einige Benutzer anzeigen oder Skripte nur laden, wenn eine Seite eine bestimmte benutzerdefinierte Vorlage verwendet, oder sogar einen Beitrag gestalten, wenn dieser Beitrag klebrig ist.
Bedingte Tags können in Ihren Designs oder in Ihren Plugins verwendet werden, es spielt keine Rolle, aber beachten Sie, dass es in einigen Plugins manchmal etwas schwierig sein wird, einige Tags zu verwenden (tatsächlich alle themenspezifischen Tags).
Verfügbare bedingte Tags
Hier ist die Liste der verfügbaren bedingten Funktionen:
- comments_open
- has_tag
- has_term
- in_kategorie
- is_404
- is_admin
- is_archive
- is_attachment
- ist_Autor
- is_category
- is_child_theme
- is_comments_popup
- is_date
- is_day
- is_feed
- is_front_page
- ist Zuhause
- ist_Monat
- is_multi_author
- is_multisite
- is_main_site
- is_page
- is_page_template
- is_paged
- is_preview
- is_rtl
- is_search
- ist_single
- is_singular
- ist_klebrig
- is_super_admin
- is_tag
- is_tax
- ist an der Zeit
- is_trackback
- ist_Jahr
- pings_open
- post_type_exists
- is_post_type_hierarchical
- is_post_type_archive
- is_comments_popup
- taxonomie_existiert
- is_new_day
- has_excerpt
- has_nav_menu
- in der Schleife
- is_active_sidebar
- is_main_site
- is_plugin_active
- is_child_theme
- aktuelles_thema_unterstützt
Sie kennen wahrscheinlich einige von ihnen, aber kennen Sie wirklich den Unterschied zwischen is_single_() und is_singular() ? Oder zwischen id_day() und is_date() ? Wussten Sie, dass is_preview() ? Um zu verstehen, wie jede Funktion funktioniert, klicken Sie einfach auf den Tag-Namen und lesen Sie die Anweisungen im Codex sorgfältig durch.
Alle Bedingungs-Tags geben TRUE oder FALSE zurück
Bedingte Tags sind eine meiner bevorzugten integrierten WordPress-Funktionen und ich empfehle Ihnen wirklich, sie in Ihren Codes weit verbreitet zu verwenden. Alle Funktionen geben immer TRUE oder FALSE zurück, niemals IDs oder array().
Eine enge Beziehung zur Vorlagenhierarchie
Wie Sie vielleicht wissen, verwendet WordPress eine wirklich leistungsstarke Vorlage Hierarchie System. Nun, die Verwendung von Bedingungs-Tags hängt eng mit dieser Hierarchie zusammen. Dies ist das Prinzip, das verwendet wird, um die zu verwendende Vorlagenseite abhängig von der von Ihnen besuchten URL auszuwählen.
Bedingte Tags akzeptieren viele Argumente
Wenn Sie diese Bedingungs-Tags verwenden, müssen Sie wissen, dass Sie ihnen verschiedene Variablen wie IDs, Slug oder Arrays übergeben können. Hier ist ein Beispiel aus dem Codex mit der Funktion is_author():
- is_author()
- Wenn eine Autorenseite angezeigt wird.
- is_author( '4' )
- Wenn die Archivseite für Autorennummer (ID) 4 angezeigt wird.
- is_author( 'Vivian' )
- Wenn die Archivseite für den Autor mit dem Spitznamen „Vivian“ angezeigt wird.
- is_author('john-jones')
- Wenn die Archivseite für den Autor mit Nicename „john-jones“ angezeigt wird.
- is_author( array( 4, 'john-jones', 'Vivian') )
- Wenn die Archivseite für den Autor entweder die Benutzer-ID 4 ist oder user_nicename „John-Jones“, oder Spitzname „Vivian“.
Beispiele
So funktionieren fast alle bedingten Funktionen, aber Sie können natürlich viele Bedingungen kombinieren:
if ( is_home() && in_category( array( 9, 'blue-cheese', 'Stinky Cheeses' ) ) ) {
the_content();
}
else {
the_excerpt();
}
oder Sie können eine Aktion ausführen, wenn die eine oder andere Situation eintritt:
if ( is_home() || in_category( array( 9, 'blue-cheese', 'Stinky Cheeses' ) ) ) {
the_content();
}
else {
the_excerpt();
}
Und wenn Sie eine negative Bedingung ausführen möchten, verwenden Sie ” ! “:
$paged = $wp_query->get( 'page' );
if ( ! $paged || $paged < 2 )
{
// This is not a paginated page (or it's simply the first page of a paginated page/post)
}
else
{
// This is a paginated page.
}
Und schließlich ist die Verwendung von Bedingungs-Tags wie jede andere „else if“-PHP-Anweisung:
if ( is_page( 'about' ) || '2' == $post->post_parent ) {
// the page is "About", or the parent of the page is "About"
$bannerimg = 'about.jpg';
} elseif ( is_page( 'learning' ) || '56' == $post->post_parent ) {
$bannerimg = 'teaching.jpg';
} elseif ( is_page( 'admissions' ) || '15' == $post->post_parent ) {
$bannerimg = 'admissions.jpg';
} else {
$bannerimg = 'home.jpg'; // just in case we are at an unclassified page, perhaps the home page
}
Erstellen von benutzerdefinierten Bedingungs-Tags
In einigen Fällen müssen Sie Ihre benutzerdefinierten bedingten Funktionen erstellen. Das ist ziemlich einfach, aber sehr oft folgen Funktionsnamen nicht der gleichen Logik wie die von Core-Entwicklern. Bitte verwenden Sie dieselbe Namenskonvention mit Präfix wie „ist_“, “hat_“, “in_“. Dies ist insbesondere dann sehr hilfreich, wenn Sie nicht die einzige Person sind, die an einem bestimmten Skript arbeitet.