WordPress中的条件标签演练:27至39

在本系列中,我们将介绍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()

这是第二个不返回TRUEFALSE的条件标签,但更有用的信息:条件标签term_exists()检查分类法术语是否存在,并返回术语ID(如果未指定分类法)或数组分类和术语配对代替TRUE 。 如果指定的术语不存在,则返回0NULL

接受参数

此条件标签具有三个参数:

  • $term (字符串/整数,必填):术语的名称或ID。 (默认:无)
  • $taxonomy (字符串,可选):分类名称。 (默认:空)
  • $parent (整数,可选):父项的ID(以限制其下的搜索)。 (默认值:0)

36.检查帖子是否具有给定术语: has_term()

我们看到,如果我们想在帖子中查找标签,可以使用has_tag() 。 如果我们想做同样的事情,但有一个自定义分类法,该怎么办? 简便:条件标记has_term()具有第三个参数(第二个参数),该参数允许我们指定自定义分类法。

有趣的事实:即使条件标记has_tag()使用has_term()返回TRUEFALSE ! 与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个。如果您有任何问题或意见,请在下面进行介绍-如果您​​喜欢本文,请不要忘记分享!

下一部分见!

翻译自: https://code.tutsplus.com/tutorials/a-walkthrough-on-conditional-tags-in-wordpress-27-to-39--cms-22310

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值