Dans la première partie de cette série, nous avons appris les bases des balises conditionnelles : ce qu'elles sont, comment les utiliser et quelques scénarios dans lesquels les balises conditionnelles sont utiles.
Dans la deuxième partie, nous commencerons à examiner les 13 balises conditionnelles et, au cours de cinq articles (dont celui-ci), nous compléterons les 65 balises conditionnelles enregistrées dans le Codex. Si vous n'avez pas encore vu la première partie, n'hésitez pas à la consulter.
Commençons !
is_home()
Cette balise mal nommée Conditionnelle vérifie si la page d'index des articles de blog s'affiche. Autrefois, lorsque WordPress n’était qu’une « plateforme de blogs », « page d’accueil » signifiait une liste de vos derniers articles de blog. Mais après que WordPress soit devenu un système de gestion de contenu, le nom is_home()
est devenu un peu obsolète.
Cette balise conditionnelle n’accepte aucun paramètre.
is_home()的使用示例
Supposons que vous souhaitiez saluer vos visiteurs sur votre page d'accueil. Voici ce que vous devez faire :
<?php if ( is_home() ) { _e( 'Welcome to my great blog!', 'translation-domain' ); } ?>
is_child_theme()
Lors du développement avec WordPress, vous souhaiterez peut-être vérifier si vous utilisez un thème enfant. Si tel est le cas, la balise conditionnelle is_child_theme()
将在是否使用子主题时返回 TRUE
或 FALSE
vous aidera en renvoyant TRUE
ou FALSE
si un thème enfant est utilisé ou non.
Cette balise conditionnelle n’accepte aucun paramètre.
in_category()
Dans un projet WordPress, vous souhaiterez peut-être que différentes catégories de publications se comportent différemment. Par exemple, vous souhaiterez peut-être ajouter des classes à certaines publications ou les masquer entièrement de la liste générale des publications. Les balises conditionnelles in_category()
vous permettent de cibler les publications dans une ou plusieurs catégories.
Cette balise conditionnelle a deux paramètres :
$category
(tableau/chaîne, obligatoire) : ID de catégorie, nom, slug ou un tableau de ceux-ci. (Par défaut : Aucun) $post
(objet/entier, facultatif) : La publication (ID ou objet) à vérifier. (Par défaut : article actuel) in_category()
Supposons que vous ayez un blog avec de nombreuses catégories, dont l'une est « Annonces », et que vous souhaitiez que les mises à jour apparaissent dans d'autres articles, vous souhaitez donc ajouter une classe personnalisée au wrapper de l'article. Voici ce que vous devez faire :
<?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()
Les modèles de pages sont une fonctionnalité de WordPress qui vous permet de choisir la manière dont certaines pages apparaissent. Avec les balises conditionnelles is_page_template()
, vous pouvez détecter si un certain modèle de page (ou n'importe quel modèle de page) est utilisé.
Cette balise conditionnelle n'a qu'un seul paramètre :
$template
(Chaîne, facultatif) : Le nom du modèle - avec extension. (Par défaut : Aucun) is_archive()
Il existe de nombreux types d'archives dans les sites WordPress : archives de dates, archives de catégories, archives de tags, archives d'auteurs, archives de catégories personnalisées... Mais si vous souhaitez détecter les pages d'archives en général, is_archive()
est votre ami : vérifiez si une page d'archive montre .
Cette balise conditionnelle n’accepte aucun paramètre.
is_archive()的使用示例
Supposons que vous souhaitiez ajouter du texte avant le titre du message dans votre page d'archives. Voici ce que vous devez faire :
<?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()
Comme je l'ai déjà dit, il existe de nombreux types de pages d'archives, et l'archive de dates en fait partie. Les archives de dates peuvent être divisées en archives d'année, de mois et de jour, mais si vous souhaitez détecter une page d'archives de dates générales, vous pouvez utiliser la balise conditionnelle is_date()
;
Cette balise conditionnelle n’accepte aucun paramètre.
is_active_widget()
Créer des widgets dans WordPress est simple et amusant, mais nous devrons peut-être déterminer si le widget est utilisé sur le front-end. La balise conditionnelle is_active_widget()
fait exactement cela : elle vérifie si le widget est affiché.
Cette balise conditionnelle a quatre paramètres :
$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 篇文章。如果您有任何问题或意见,请在下面提出 - 如果您喜欢这篇文章,请不要忘记分享!
下一部分见!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!