在本系列中,我们将介绍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个。如果您有任何问题或意见,请在下面进行拍摄-如果您喜欢本文,请不要忘记分享!
下一部分见!