在本系列中,我们将介绍WordPress的基本功能之一:条件标记。 在第四部分中,我们将继续介绍和回顾条件标签。 如果还没有,请确保检查以前的部分。
让我们开始!
27.检查页面是否为“每月存档”页面: is_month()
在WordPress中,最常用的基于日期的存档类型可能是每月存档。 当您需要检测代码是否在每月存档页面中运行时,条件标记is_month()
将为您提供帮助。
接受参数
此条件标签不接受任何参数。
28.检查当前主题的功能: current_theme_supports()
在开发插件时,您可能需要检查活动主题是否允许缩略图,帖子格式,自定义标题甚至小部件。 借助current_theme_supports()
,您可以检查正在使用的主题是否支持您指定的功能。
接受参数
此条件标签只有一个参数:
-
$feature
(字符串,可选):功能名称。 (默认:无)
功能名称:
- “缩略图”
- “后格式”
- “自定义标题”
- “自定义背景”
- “菜单”
- “自动供稿链接”
- “编辑风格”
- 小工具
- 'html5'
current_theme_supports()
用法示例
假设您正在开发具有“自定义背景”功能的专用于WordPress主题的插件。 您的插件将对不支持自定义背景的主题无效,因此您需要在管理面板中显示错误消息以通知用户。 这是您的工作:
<?php
add_action( 'admin_notices', 'custom_bg_feature_warning' );
function custom_bg_feature_warning() {
if ( ! current_theme_supports( 'custom-background' ) ) {
echo '<div class="error">
<p>' . __( 'This plugin requires a theme with the "custom backgrounds" feature enabled.', 'translation-domain' ) . '</p>
</div>';
}
}
?>
29.检查指定的插件是否处于活动状态: is_plugin_active()
条件标签is_plugin_active()
仅在管理面板中工作,可以帮助您的代码知道给定的插件是否处于活动状态。 如果您要为流行的插件(如WooCommerce)或作为插件安装的基础框架(如Redux框架)编写“附加插件”,则此条件标签会很有用。
接受参数
此条件标签只有一个参数:
-
$plugin
(字符串,必填):插件或子目录的名称。 (默认:无)
30.检查URL是否是本地附件: is_local_attachment()
正确使用WordPress附件是一件好事,但是如何确定URL是否实际上是附件? 如果您在开发时使用URL,则条件标记is_local_attachment()
对您可能非常有用:它检查给定URL是否作为附件上传到同一WordPress安装中。
接受参数
此条件标签只有一个参数:
-
$url
(字符串,必填):要检查的URL。 (默认:无)
is_local_attachment()
用法示例
由于此条件标签非常简单,因此该示例也非常简单。 假设您正在开发一个插件,并且需要检查URL(由您创建的另一个函数生成),以查看它们是否为本地附件:
<?php
$url = some_url_generator_function();
if ( is_local_attachment( $url ) ) {
_e( 'Yep, this is a local attachment!', 'translation-domain' );
} else {
_e( 'Nope, this is not a local attachment.', 'translation-domain' );
}
?>
31.检查页面是否为基于时间的存档页面: is_time()
您是否知道WordPress具有基于小时,基于分钟,甚至基于第二的存档? (说实话,在编写本系列文章之前,我不知道您可以创建这些类型的档案。 在Tuts +上写作也可能是一次教育之旅!)
它不是开箱即用的,这意味着您无法输入mywebsite.com/2014/02/22/18/30/
并在2014年2月22日获得18:30的存档; 但是您可以在WP_Query
类的帮助下创建一个。 无论如何:如果要检测这些基于时间的存档,则可以使用is_time()
条件标记。
接受参数
此条件标签不接受任何参数。
32.检查当前语言环境是否为RTL: is_rtl()
在某些语言中,大多数是在中东国家/地区,文字是从右向左书写的,而不是从左至右书写的。 作为WordPress开发人员,您必须考虑所有WordPress用户,并且如果您希望主题或插件与带有RTL文本的WordPress网站完美配合,则应使用is_rtl()
来确定语言环境是否为RTL。
接受参数
此条件标签不接受任何参数。
is_rtl()
用法示例
大多数Web设计人员都会为RTL语言环境创建单独的样式表,这是一种常见的做法。 如果要有条件地加载RTL样式表,请执行以下操作:
<?php
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_styles' );
function mytheme_enqueue_styles() {
if ( is_rtl() ) {
wp_enqueue_style( 'style-rtl', plugins_url( '/css/style-rtl.css', __FILE__ ) );
}
}
?>
33.检查页面是否为自定义分类的“归档”页面: is_tax()
条件标签is_tag()
可以检测标签档案,但不能与自定义分类法一起使用。 要确定是否显示分类分类存档页面,可以使用is_tax()
。 默认情况下,它包括所有分类档案页面,包括常规标签。 但是它有两个参数,因此您可以定位特定的分类存档页面,甚至特定的术语。
接受参数
此条件标签只有一个参数:
-
$taxonomy
(数组/字符串,可选):分类标准段或段列表。 (默认:无) -
$term
(数组/字符串/整数,可选):术语的ID,名称,子句或它们的数组。 (默认:无)
34.检查页面是否为附件页面: is_attachment()
创建插件(或主题)时,您可能想知道何时显示附件页面。 条件标记is_attachment()
可以帮助您:在附件页面中返回TRUE
,在其他任何位置返回FALSE
。
接受参数
此条件标签不接受任何参数。
is_attachment()
用法示例
假设您要在附件上方显示“返回帖子”链接。 这是您的工作:
<?php
if ( is_attachment() ) {
// Get attachment's parent.
$parent = get_post_field( 'post_parent', $id );
// Get permalink of the parent post.
$parent_link = get_permalink( $parent );
// Echo the link.
echo '<a href="' . $parent_link . '" class="parent-post-link">' . __( 'Back to the post', 'translation-domain' ) . '</a>';
}
?>
35.检查给定术语是否存在: term_exists()
这是第二个不返回TRUE
和FALSE
的条件标签,但更有用的信息:条件标签term_exists()
检查分类法术语是否存在,并返回术语ID(如果未指定分类法)或数组分类和术语配对代替TRUE
。 如果指定的术语不存在,则返回0
或NULL
。
接受参数
此条件标签具有三个参数:
-
$term
(字符串/整数,必填):术语的名称或ID。 (默认:无) -
$taxonomy
(字符串,可选):分类名称。 (默认:空) -
$parent
(整数,可选):父项的ID(以限制其下的搜索)。 (默认值:0)
36.检查帖子是否具有给定术语: has_term()
我们看到,如果我们想在帖子中查找标签,可以使用has_tag()
。 如果我们想做同样的事情,但有一个自定义分类法,该怎么办? 简便:条件标记has_term()
具有第三个参数(第二个参数),该参数允许我们指定自定义分类法。
有趣的事实:即使条件标记has_tag()
使用has_term()
返回TRUE
或FALSE
! 与has_tag()
函数一样, has_term()
也允许您指定多个术语(但只能使用一种分类法)。
接受参数
此条件标签具有三个参数:
-
$term
(数组/字符串/整数,可选):术语的名称,ID,子句或这些的数组。 (默认:空) -
$taxonomy
(字符串,必填):分类名称。 (默认:空) -
$post
(对象/整数,可选):过帐以进行检查。 (默认值:NULL
)
has_term()
用法示例
假设您经营一个电子商务网站,并且打算更换Dell笔记本电脑的供应商,因此想通知您的用户,发货时间将推迟到下周。 这是您的工作:
<?php
if ( has_term( 'dell', 'laptops' ) ) {
echo '<div class="above-product-warning"><strong>' . __( 'Warning', 'translation-domain' ) . ':</strong> ' . __( 'We\'re switching suppliers for Dell laptops, so the shipments will be delayed until next week. Sorry about that!', 'translation-domain' ) . '</div>';
}
?>
37.检查是否是引用is_trackback()
并且我们在2007年): is_trackback()
问候,老朋友! 您想确定评论是否为“引用通告”吗? is_trackback()
条件标记将帮助您!
接受参数
此条件标签不接受任何参数。
38.检查是否正在使用“ WordPress Multisite”: is_multisite()
尽管不是WordPress受欢迎的功能,但Multisite在必要时非常方便。 如果您希望代码在正常的WordPress安装中运行并且在多站点安装中表现不同,则条件标记is_multisite()
可帮助您检测是否启用了多站点支持。
接受参数
此条件标签不接受任何参数。
is_multisite()
用法示例
假设您正在开发插件,并且如果启用了多站点,则该插件需要插件中的另一个类。 这是您的工作:
<?php
if ( is_multisite() ) {
require_once( 'path/to/multisite-class.php' );
}
?>
39.检查页面是否为帖子类型存档: is_post_type_archive()
有时,您可能希望您的代码知道是否正在显示自定义帖子类型(或几个自定义帖子类型,或任何自定义帖子类型)的存档页面。 条件标记is_post_type_archive()
的确做到这一点:它检查查询是否针对自定义帖子类型的存档页面。
接受参数
此条件标签只有一个参数:
-
$post_types
(数组/字符串,可选):帖子类型的名称,或帖子类型名称的数组。 (默认:无)
结论
在这一部分中,我们回顾了WordPress中记录的65个条件标签中的另一批。 在接下来的部分中,我们将介绍其余的26个。如果您有任何问题或意见,请在下面进行介绍-如果您喜欢本文,请不要忘记分享!
下一部分见!