WordPress中的条件标签演练:40到52

在本系列中,我们将介绍WordPress的基本功能之一:条件标记。 在第五部分中,我们将继续介绍和回顾条件标签。 如果还没有,请确保检查以前的部分。

让我们开始!

40.检查博客是否是网络的“主要站点”: is_main_site()

如果您正在为WordPress Multisite开发,最终会有一段时间需要检测主站点。 条件标记is_main_site将帮助您:确定给定的站点ID是否是网络的主站点。

接受参数

此条件标签只有一个参数:

  • $site_id (整数,可选):要检查的站点ID。 (默认:当前站点ID)

41.检查菜单位置是否有分配的菜单: has_nav_menu()

创建自定义导航菜单时 ,您需要使用register_nav_menu(s)函数的两个参数来指定“菜单位置”。 条件标签has_nav_menu()检查用户是否将一个自定义菜单分配给给定位置。

接受参数

此条件标签只有一个参数:

  • $location (字符串,可选):菜单位置的子菜单。 (默认:无)

has_nav_menu()用法示例

假设您的主题的自定义菜单位置之一需要一个小JavaScript文件才能正常工作,因此,仅当用户正在使用菜单时,您才想使其入队。 这是您的工作:

<?php

if ( has_nav_menu( 'mytheme-footer-menu' ) ) {

    wp_enqueue_script( 'mytheme-footer-menu-js', 'path/to/mytheme-footer-menu.js', array( 'jquery' ) );
	
}

?>

42.检查指定的插件在多is_plugin_active_for_network()是否处于活动状态: is_plugin_active_for_network()

is_plugin_active()相似,条件标记is_plugin_active_for_network()将在多站点安装中检测给定的插件是否处于活动状态。 如果您的代码需要知道整个网络(而不是单个站点)中是否有另一个插件处于活动状态,则这可能很有用。

接受参数

此条件标签只有一个参数:

  • $plugin (字符串,必填):插件或子目录的名称。 (默认:无)

43.检查是否启用了comments_open()comments_open()

最常用的条件标签之一是comments_open() 。 使用if语句中的此功能,可以确定当前帖子中是否启用了注释。

接受参数

此条件标签只有一个参数:

  • $post_id (整数,可选):帖子ID。 (默认值:0)

comment_open comments_open()用法示例

假设您要在评论部分之前回显警告,如果该帖子已启用评论。 这是您的工作:

<?php

if ( comments_open() ) {

    echo '<div class="comments-warning"><strong>' . __( 'Warning', 'translation-domain' ) . ':</strong> ' . __( 'All commenters are responsible for their own words!', 'translation-domain' ) . '</div>';

}

?>

44.检查侧边栏是否包含任何小部件: is_dynamic_sidebar()

许多WordPress主题使用边栏显示小部件内容。 但是,如果您正在开发插件或主题,并想要确定未使用的侧边栏,则可以使用条件标签is_dynamic_sidebar() -它检查侧边栏是否处于活动状态并且是否使用了任何小部件。

接受参数

此条件标签不接受任何参数。

45.检查博客中是否有一位以上的作者: is_multi_author()

我认为大多数WordPress网站只能由一个用户运行。 公司网站通常不需要多个用户,互联网上充斥着“个人博客”(这是一件好事,请不要误解我的意思)。 但是,您可能要检查是否有多个作者发表了帖子。 如果是这样, is_multi_author()可以帮助您检测具有多个作者的WordPress安装。

接受参数

此条件标签不接受任何参数。

is_multi_author()用法示例

假设您要为具有多个作者的博客制作插件,并且要警告单个作者该插件不适用于他们。 这是您的工作:

<?php

add_action( 'admin_notices', 'warn_single_authors' );

function warn_single_authors() {

    if ( ! is_multi_author() ) {
    
        echo '<div class="error">
                  <p>' . __( 'Sorry mate, this plugin only works for blogs with multiple authors!', 'translation-domain' ) . '</p>
              </div>';
    
    }

}

?>

46.检查Ping是否打开: pings_open()

如果由于某些原因您仍然使用引用通告(或者您需要插件才能在真正的旧博客上工作),则可以借助pings_open()确定是否在特定帖子(或正在显示的帖子)中启用了引用通告和ping。条件标记。

接受参数

此条件标签只有一个参数:

  • $post_id (整数,可选):帖子ID。 (默认值:0)

47.检查是否正在显示提要: is_feed()

我仍然喜欢提要,但如今它们成为网络中的过时部分。 WordPress也使用它们:它的核心支持四种不同类型的提要。 如果要让函数知道它在feed中何时运行,可以使用is_feed()条件标记-它检查当前查询是否针对feed。

接受参数

此条件标签只有一个参数:

  • $feeds (字符串/数组,可选):提要类型。 (默认:无)

is_feed()用法示例

假设您要在每个帖子中为供稿发布额外的内容(以鼓励更多的人订阅)。 您将需要一个简码。 这是您的工作:

<?php

// Usage: [feedonly]Hey there, feed readers![/feedonly]
// Source: http://www.wpbeginner.com/wp-tutorials/how-to-create-feed-only-content-in-wordpress-with-shortcode/

add_shortcode( 'feedonly', 'feedonly_shortcode' );

function feedonly_shortcode( $atts, $content = null ) {

    if ( is_feed() ) {
    	
		return $content;
		
	}

}

?>

48.检查页面是否为“ Yearly Archives”页面: is_year()

在您不经常写的博客中,最好推广年度存档而不是每月存档。 而且,如果要添加其他功能或显示不同的设计,则可以使用is_year()来检测基于年份的存档页面。

接受参数

此条件标签不接受任何参数。

49.检查访问者是否为登录用户is_user_logged_in()

为登录用户运行不同的代码是很常见的事情:它可能是一个新的菜单项,可能是一个额外的注释字段,或者可能是一个完全不同的网站设计。 无论哪种情况,您都可以使用is_user_logged_in()条件标记检测登录的用户。

接受参数

此条件标签不接受任何参数。

is_user_logged_in()用法示例

假设您想用与访客不同的方式问候用户。 这是您的工作:

<?php

if ( is_user_logged_in() ) {

    $current_user = wp_get_current_user();

    echo __( 'Good to see you', 'translation-domain' ) . ', ' . $current_user->display_name . '!';
    
} else {

    _e( 'Welcome to our website!', 'translation-domain' );

}

?>

50.检查附件是否为图像: wp_attachment_is_image()

这个条件标签的工作非常简单:您将帖子ID作为参数传递,如果帖子的附件是JPG,JPEG,GIF或PNG文件(如果不是,则为FALSE ),条件标签返回TRUE

接受参数

此条件标签只有一个参数:

  • $post_id (整数, 实际上是必需的,在技术上是可选的):帖子ID。 (默认值:0)

为什么“实际上是必需的”和“技术上可选的”? 因为它的默认值为0,这意味着如果您使用不带其参数的条件标签,它将尝试返回不存在的帖子。

51.检查给定帖子类型是否存在: post_type_exists()

在某些情况下,最好检查某个自定义帖子类型是否已在使用中。 (例如,如果要创建一个投资组合插件,则可能要尝试从投资组合的常用帖子类型名称中复制帖子。)为此,可以使用post_type_exists()条件标记。

接受参数

此条件标签只有一个参数:

  • $post_type (字符串,必需):帖子类型的名称。 (默认:无)

post_type_exists()用法示例

假设您正在开发“ portfolio”插件,并且自然选择了自定义帖子类型名称“ portfolio”。 但是许多开发人员对投资组合帖子类型使用相同的名称,因此,如果其他插件或主题已经注册了帖子类型,则需要警告用户:

<?php

add_action( 'admin_notices', 'same_post_type_warning' );

function same_post_type_warning() {

    if ( post_type_exists( 'portfolio' ) ) {
    
        echo '<div class="error">
                  <p><strong>' . __( 'Warning', 'translation-domain' ) . ':</strong> ' . __( 'A post type with the name "portfolio" has already been registered by another plugin or theme. This will most probably cause conflicts.', 'translation-domain' ) . '</p>
              </div>';
    
    }

}

?>

52.检查当前帖子是否在新的一天发布: is_new_day()

某些WordPress函数解决了最微小的问题, is_new_day()是其中之一:如果当前发布日期与前一天不同,则此特定的条件标签将返回TRUE

接受参数

此条件标签不接受任何参数。

结论

在这一部分中,我们回顾了WordPress中记录的65个条件标签中的另一批。 在下一部分中,我们将介绍其余的13个。如果您有任何问题或意见,请在下面进行拍摄-如果您喜欢本文,请不要忘记分享!

下一部分见!

翻译自: https://code.tutsplus.com/tutorials/a-walkthrough-on-conditional-tags-in-wordpress-40-to-52--cms-22311

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值