Im ersten Teil dieser Serie haben wir die Grundlagen von bedingten Tags kennengelernt – was sie sind, wie man sie verwendet und einige Szenarien, in denen bedingte Tags nützlich sind.
Im zweiten Teil beginnen wir mit der Überprüfung der 13 bedingten Tags und werden im Verlauf von fünf Artikeln (einschließlich diesem) alle 65 im Codex aufgezeichneten bedingten Tags vervollständigen. Wenn Sie den ersten Teil noch nicht gesehen haben, schauen Sie sich ihn unbedingt an.
Lass uns anfangen!
is_home()
Dieses Schlecht benannte Bedingte Tag prüft, ob die Indexseite des Blogbeitrags angezeigt wird. Früher, als WordPress nur eine „Blogging-Plattform“ war, bedeutete „Homepage“ eine Liste Ihrer neuesten Blog-Beiträge. Doch nachdem sich WordPress zu einem Content-Management-System weiterentwickelte, wurde der Name is_home()
etwas veraltet.
Dieses bedingte Tag akzeptiert keine Parameter.
is_home()的使用示例
Angenommen, Sie möchten Ihre Besucher auf Ihrer Homepage begrüßen. Folgendes müssen Sie tun:
<?php if ( is_home() ) { _e( 'Welcome to my great blog!', 'translation-domain' ); } ?>
is_child_theme()
Wenn Sie mit WordPress entwickeln, möchten Sie möglicherweise überprüfen, ob Sie ein untergeordnetes Thema verwenden. Wenn dies der Fall ist, hilft Ihnen das bedingte Tag is_child_theme()
将在是否使用子主题时返回 TRUE
或 FALSE
, indem es TRUE
oder FALSE
zurückgibt, ob ein untergeordnetes Thema verwendet wird oder nicht.
Dieses bedingte Tag akzeptiert keine Parameter.
in_category()
In einem WordPress-Projekt möchten Sie möglicherweise, dass sich verschiedene Beitragskategorien unterschiedlich verhalten. Beispielsweise möchten Sie möglicherweise bestimmten Beiträgen Klassen hinzufügen oder diese vollständig aus der allgemeinen Beitragsliste ausblenden. Mit bedingten Tags in_category()
können Sie Beiträge in einer oder mehreren Kategorien gezielt ansprechen.
Dieses bedingte Tag hat zwei Parameter:
$category
(Array/String, erforderlich): Kategorie-ID, Name, Slug oder ein Array davon. (Standard: Keine) $post
(Objekt/Ganzzahl, optional): Der zu überprüfende Beitrag (ID oder Objekt). (Standard: aktueller Beitrag) in_category()
Angenommen, Sie haben einen Blog mit vielen Kategorien, darunter „Ankündigungen“, und Sie möchten, dass Aktualisierungen in anderen Beiträgen angezeigt werden. Daher möchten Sie dem Beitrags-Wrapper eine benutzerdefinierte Klasse hinzufügen. Folgendes müssen Sie tun:
<?php // Standard Loop stuff. if ( have_posts() ) { while( have_posts() ) { the_post(); if ( in_category( '7' ) ) { ?> <div class="post post-announcement"> <?php } else { ?> <div class="post"> <?php } ?> <h2> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </h2> <div class="post-content"> <?php the_content(); ?> </div> </div><!-- .post --> <?php } } else { echo '<p>' . __( 'Sorry, no posts matched your criteria.', 'translation-domain' ) . '</p>'; } ?>
is_page_template()
Seitenvorlagen sind eine Funktion von WordPress, mit der Sie auswählen können, wie bestimmte Seiten angezeigt werden. Mit bedingten Tags is_page_template()
können Sie erkennen, ob eine bestimmte Seitenvorlage (oder eine beliebige Seitenvorlage) verwendet wird.
Dieses bedingte Tag hat nur einen Parameter:
$template
(String, optional): Der Name der Vorlage – mit Erweiterung. (Standard: Keine) is_archive()
Es gibt viele Arten von Archiven in WordPress-Sites: Datumsarchive, Kategoriearchive, Tag-Archive, Autorenarchive, benutzerdefinierte Kategoriearchive ... Aber wenn Sie Archivseiten im Allgemeinen erkennen möchten, ist is_archive()
Ihr Freund: Überprüfen Sie, ob eine Archivseite vorhanden ist wird angezeigt.
Dieses bedingte Tag akzeptiert keine Parameter.
is_archive()的使用示例
Angenommen, Sie möchten vor dem Beitragstitel auf Ihrer Archivseite Text hinzufügen. Folgendes müssen Sie tun:
<?php add_filter( 'the_title', 'alter_title_in_archives' ); function alter_title_in_archives( $title ) { if ( is_archive() && is_main_query() ) { return __( 'Archive', 'translation-domain' ) . ' – ' . $title; } return $title; } ?>
is_date()
Wie ich bereits sagte, gibt es viele Arten von Archivseiten, und das Datumsarchiv ist eine davon. Datumsarchive können in Jahres-, Monats- und Tagesarchive unterteilt werden. Wenn Sie jedoch eine allgemeine Datumsarchivseite erkennen möchten, können Sie das bedingte Tag is_date()
verwenden.
Dieses bedingte Tag akzeptiert keine Parameter.
is_active_widget()
Das Erstellen von Widgets in WordPress ist einfach und macht Spaß, aber wir müssen möglicherweise feststellen, ob das Widget im Frontend verwendet wird. Das bedingte Tag is_active_widget()
macht genau das: Es prüft, ob das Widget angezeigt wird.
Dieses bedingte Tag hat vier Parameter:
$callback
(字符串,可选):要检查的小部件回调。 (默认:FALSE
)$widget_id
(整数,可选):小部件的 ID。 (默认:无)$id_base
(字符串,可选):通过扩展 WP_Widget 创建的小部件的基本 ID。 (默认:无)$skip_inactive
(布尔值,可选):是否跳过不活动的小部件。 (默认:TRUE
)is_active_widget()的使用示例
假设您的主题中的一个小部件需要 jQuery 才能运行,并且您需要有条件地将其排入队列。这是你要做的:
<?php // source: http://codex.wordpress.org/Function_Reference/is_active_widget if ( is_active_widget( false, false, $this->id_base, true ) ) { wp_enqueue_script( 'jquery' ); } ?>
is_single()
想要检查用户是否正在访问单个帖子?最流行的条件标签之一 is_single()
可以为您提供帮助。它可以检测任何帖子类型,但附件页面和页面页面除外。如果您指定帖子 ID、帖子标题或帖子标题(或这些内容的数组),您也可以检测特定帖子。
此条件标记只有一个参数:
$post
(数组/字符串,可选):帖子 ID、标题、slug 或其中的数组。 (默认:无)email_exists()
如果您需要检查电子邮件地址是否在 WordPress 的用户表中,可以使用 email_exists()
条件标签。
此特定条件标记是返回 TRUE
以外内容的三个条件标记之一 - 它返回使用给定电子邮件地址注册的用户 ID。
此条件标记只有一个参数:
$email
(字符串,可选):要检查的电子邮件地址。 (默认:无)email_exists()
的使用示例
假设您正在开发一个插件,该插件可以根据用户的电子邮件地址构建电子邮件列表,并允许您使用自定义输入添加和删除更多电子邮件地址,但您希望防止删除属于用户的电子邮件地址。这是你要做的:
<?php $email_address = get_email_from_some_function(); if ( email_exists( $email_address ) ) { wp_die( __( 'Sorry champ, you can\'t delete a user from this list.', 'translation-domain' ) ); } ?>
is_post_type_hierarchical()
与页面和子页面一样,您可以为 WordPress 中的新自定义帖子类型定义层次结构。条件标签 is_post_type_hierarchical()
让您的代码知道给定的帖子类型是否是分层的。
此条件标记只有一个参数:
$post_type
(字符串,必需):帖子类型的名称。 (默认:无)is_sticky()
“置顶帖子”是指无论何时发布,都会保留在帖子列表顶部的帖子。而且——我在这里会有点歧视——他们应该得到与其他普通帖子不同的待遇。因此,如果您想向置顶帖子添加帖子类,或者以不同的方式处理它们,您可以使用 is_sticky()
条件标签让您的代码检测它们。
此条件标记只有一个参数:
$post_id
(字符串,可选):帖子的 ID。 (默认:无)is_sticky()的使用示例
假设您正在制作一个主题,并且希望在置顶帖子中显示“置顶”功能区。这是你要做的:
<?php if ( is_sticky() ) { echo '<div class="sticky-ribbon"></div>'; } ?>
is_admin()
让我们知道我们是在前端还是后端,条件标签 is_admin()
是最流行的条件标签之一。顾名思义,is_admin
检查 WordPress 管理面板是否正在显示。
此条件标记不接受任何参数。
is_category()
当您想要检测某些类别存档页面时,可以使用条件标签 is_category()
。定义一个类别(或一组类别)作为其参数,您可以检查这些类别的档案是否正在显示。如果您未设置该参数,则当显示任何类别存档页面时,它将返回 TRUE
。
此条件标记只有一个参数:
$category
(字符串/数组,可选):类别 ID、标题、slug 或这些的数组。 (默认:无)is_category()的使用示例
假设您希望在显示“新闻”类别档案时包含不同的侧边栏。这是你要做的:
<?php if ( is_category() ) { // Load sidebar-news.php. get_sidebar( 'news' ); } else { // Load sidebar.php. get_sidebar(); } ?>
在这一部分中,我们回顾了 WordPress 中记录的 65 个条件标签中的 13 个。在接下来的部分中,我们将讨论剩下的 52 篇文章。如果您有任何问题或意见,请在下面提出 - 如果您喜欢这篇文章,请不要忘记分享!
下一部分见!
Das obige ist der detaillierte Inhalt vonEntdecken Sie bedingte Tags in WordPress: von 1 bis 13. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!