Dalam bahagian pertama siri ini, kami mempelajari asas teg bersyarat - apakah ia, cara menggunakannya dan beberapa senario di mana teg bersyarat berguna.
Dalam bahagian dua kami akan mula menyemak 13 tag bersyarat, dan sepanjang lima artikel (termasuk yang satu ini) kami akan melengkapkan kesemua 65 tag bersyarat yang direkodkan dalam Codex. Jika anda belum melihat bahagian satu lagi, pastikan anda menyemaknya.
Jom mulakan!
is_home()
is_home()
这个命名不佳条件标记检查博客文章索引页面是否正在显示。在过去,当 WordPress 只是一个“博客平台”时,“主页”意味着您最新博客文章的列表。但在 WordPress 发展成为一个内容管理系统之后,is_home()
这个名字就有点过时了。
此条件标记不接受任何参数。
is_home()的使用示例
假设您想在主页上向访问者致意。这是你要做的:
<?php if ( is_home() ) { _e( 'Welcome to my great blog!', 'translation-domain' ); } ?>
is_child_theme()
使用 WordPress 进行开发时,您可能需要检查是否正在使用子主题。如果是这种情况,条件标签 is_child_theme()
将在是否使用子主题时返回 TRUE
或 FALSE
来帮助您。
此条件标记不接受任何参数。
in_category()
在 WordPress 项目中,您可能希望不同类别的帖子具有不同的行为。例如,您可能想要向某些帖子添加类,或者从一般帖子列表中完全隐藏这些帖子。条件标签 in_category()
允许您确定在某个或多个类别中发布的帖子。
此条件标记有两个参数:
$category
(数组/字符串,必需):类别 ID、名称、slug 或这些的数组。 (默认:无)$post
(对象/整数,可选):要检查的帖子(ID 或对象)。 (默认:当前帖子)in_category()
的使用示例
假设您有一个包含很多类别的博客,其中一个是“公告”,并且您希望更新在其他帖子中弹出,因此您想要向帖子包装器添加一个自定义类。这是你要做的:
<?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()
页面模板是 WordPress 的一项功能,允许您选择某些页面的显示方式。借助条件标签 is_page_template()
,您可以检测某个页面模板(或任何页面模板)是否正在使用。
此条件标记只有一个参数:
$template
(字符串,可选):模板的名称 - 带扩展名。 (默认:无)is_archive()
WordPress 网站中有多种存档:日期存档、类别存档、标签存档、作者存档、自定义分类存档...但如果您想检测一般的存档页面,is_archive()
是您的朋友:检查是否正在显示存档页面。
此条件标记不接受任何参数。
is_archive()的使用示例
假设您想在存档页面中在帖子标题前添加一些文本。这是你要做的:
<?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()
正如我之前所说,存档页面有很多种类型,日期存档就是其中之一。日期档案可分为年、月、日档案;但如果您想检测一般的日期存档页面,您可以使用 is_date()
条件标记。
此条件标记不接受任何参数。
is_active_widget()
在 WordPress 中创建小部件既简单又有趣,但我们可能需要确定该小部件是否在前端使用。条件标签 is_active_widget()
Teg bersyarat nama buruk ini menyemak sama ada halaman indeks catatan blog sedang dipaparkan. Pada zaman dahulu, apabila WordPress hanyalah "platform blog", "laman utama" bermaksud senarai catatan blog terkini anda. Tetapi selepas WordPress berkembang menjadi sistem pengurusan kandungan, nama is_home()
menjadi agak ketinggalan zaman.
Teg bersyarat ini tidak menerima sebarang parameter.
🎜Contoh penggunaan is_home()
🎜
🎜Andaikan anda ingin menyapa pelawat anda di halaman utama anda. Inilah perkara yang anda perlu lakukan: 🎜
<?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_child_theme()
🎜Apabila membangun dengan WordPress, anda mungkin ingin menyemak sama ada anda menggunakan tema kanak-kanak. Jika ini berlaku, teg bersyarat is_child_theme()
akan membantu anda dengan mengembalikan TRUE
atau FALSE
jika tema kanak-kanak digunakan atau tidak. 🎜
🎜Parameter yang diterima🎜
🎜Teg bersyarat ini tidak menerima sebarang parameter. 🎜
🎜3. Semak sama ada siaran tergolong dalam kategori tertentu: in_category()
🎜Dalam projek WordPress, anda mungkin mahukan kategori siaran yang berbeza untuk berkelakuan berbeza. Sebagai contoh, anda mungkin ingin menambah kelas pada siaran tertentu atau menyembunyikannya sepenuhnya daripada senarai siaran umum. Teg bersyarat in_category()
membolehkan anda mengenal pasti siaran yang diterbitkan dalam satu atau lebih kategori. 🎜
🎜Parameter yang diterima🎜
🎜Teg bersyarat ini mempunyai dua parameter: 🎜
$category
(array/string, diperlukan): ID Kategori, nama, slug atau tatasusunan ini. (Lalai: Tiada)$post
(objek/integer, pilihan): Catatan (ID atau objek) untuk diperiksa. (Lalai: siaran semasa)in_category()
contoh penggunaan
🎜
🎜Andaikan anda mempunyai blog dengan banyak kategori, salah satunya ialah "Pengumuman", dan anda mahu kemas kini muncul di dalam siaran lain, jadi anda ingin menambah kelas tersuai pada pembungkus siaran. Inilah perkara yang anda perlu lakukan: 🎜
<?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_page_template()
🎜Templat halaman ialah ciri WordPress yang membolehkan anda memilih cara halaman tertentu muncul. Dengan teg bersyarat is_page_template()
anda boleh mengesan sama ada templat halaman (atau mana-mana templat halaman) sedang digunakan. 🎜
🎜Parameter yang diterima🎜
🎜Teg bersyarat ini hanya mempunyai satu parameter: 🎜
$template
(rentetan, pilihan): Nama templat - dengan sambungan. (Lalai: Tiada)is_archive()
🎜Terdapat banyak jenis arkib dalam laman web WordPress: arkib tarikh, arkib kategori, arkib tag, arkib pengarang, arkib kategori tersuai... Tetapi jika anda ingin mengesan halaman arkib umum, is_archive()
ialah untuk anda Rakan: Semak sama ada halaman arkib dipaparkan. 🎜
🎜Parameter yang diterima🎜
🎜Teg bersyarat ini tidak menerima sebarang parameter. 🎜
🎜Contoh penggunaan is_archive()
🎜
🎜Andaikan anda ingin menambah beberapa teks sebelum tajuk siaran dalam halaman arkib anda. Inilah perkara yang anda perlu lakukan: 🎜
<?php if ( is_sticky() ) { echo '<div class="sticky-ribbon"></div>'; } ?>
is_date()
🎜Seperti yang saya katakan sebelum ini, terdapat banyak jenis halaman arkib, dan arkib tarikh adalah salah satu daripadanya. Fail tarikh boleh dibahagikan kepada fail tahun, bulan dan hari; tetapi jika anda ingin mengesan halaman arkib tarikh umum, anda boleh menggunakan teg bersyarat is_date()
. 🎜
🎜Parameter yang diterima🎜
🎜Teg bersyarat ini tidak menerima sebarang parameter. 🎜
🎜7. Semak sama ada widget yang diberikan sedang digunakan: is_active_widget()
🎜Membuat widget dalam WordPress adalah mudah dan menyeronokkan, tetapi kami mungkin perlu menentukan sama ada widget itu digunakan pada bahagian hadapan. Teg bersyarat is_active_widget()
melakukan perkara yang sama: ia menyemak sama ada widget sedang dipaparkan. 🎜
🎜Parameter yang diterima🎜
🎜Teg bersyarat ini mempunyai empat 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 篇文章。如果您有任何问题或意见,请在下面提出 - 如果您喜欢这篇文章,请不要忘记分享!
下一部分见!
Atas ialah kandungan terperinci Terokai teg bersyarat dalam WordPress: dari 1 hingga 13. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!