所属分类:web前端开发
在本系列中,我们将介绍 WordPress 的基本功能之一:条件标签。在第三部分中,我们将继续介绍和回顾条件标签。如果您还没有看过前面的部分,请务必查看一下。
我们开始吧!
is_front_page()
在WordPress中,“首页”可以设置为静态WordPress页面或最新博客文章列表(设置>阅读)。无论哪种方式,当显示首页时,条件标签 is_front_page()
返回 TRUE
。
此条件标记不接受任何参数。
has_post_thumbnail()
“特色图片”是新帖子/页面屏幕的关键部分之一。条件标签 has_post_thumbnail()
确定是否为给定帖子指定了特色图像。
此条件标记只有一个参数:
$post_id
(整数,可选):帖子 ID。 (默认:当前帖子 ID)has_post_thumbnail()的使用示例
假设您正在开发一个主题,其中每一篇博客文章都需要有一个“特色图像”,因此如果没有设置特色图像,您希望显示一个“默认图像”。这是你要做的:
<?php function mytheme_featured_image( $class = '' ) { global $post; $post_title = get_the_title(); if ( has_post_thumbnail( $post->ID ) ) { $featured_image = get_the_post_thumbnail( $post->ID, 'thumbnail', array( 'alt' => esc_attr( $post_title ), 'class' => $class ) ); } else { $featured_image = '<img src="' . get_stylesheet_directory_uri() . '/assets/default-thumb.jpg" alt="' . esc_attr( $post_title ) . '" class="default-thumb ' . $class . '" />'; } return $featured_image; } /* * Usage (inside the Loop): * echo mytheme_featured_image( 'my-custom-class' ); */ ?>
is_comments_popup()
你不应该评判任何使用 10 年前主题或喜欢复古的人。如果您正在开发插件,则需要考虑所有因素,其中包括使用评论弹出窗口的主题。要确定这一点,您可以使用条件标签 is_comments_popup()
。
此条件标记不接受任何参数。
is_404()
“未找到”错误页面通常是我们讨厌在网站中看到的页面,因此我们并不真正关心它们的外观。但是,当您正确使用这些错误页面时,您可以将它们变成有用的页面,通知用户或帮助他们导航。条件标签 is_404()
帮助我们确定是否向用户显示 404 错误。
此条件标记不接受任何参数。
is_404()
的使用示例
假设您正在开发一个记录损坏的内部链接的插件,并且您希望每次查看 404 错误页面时运行您的函数。这是你要做的:
<?php add_filter( 'template_redirect', 'my_plugin_check_404_pages' ); function my_plugin_check_404_pages() { if ( is_404() ) { my_plugin_404_logger_function(); } } ?>
taxonomy_exists()
如果您需要检查自定义分类是否已注册,您可以使用 taxonomy_exists()
条件标记让您的代码确定它。
此条件标记只有一个参数:
$taxonomy
(字符串,必需):分类法的名称。 (默认:无)is_search()
虽然有点被低估,但“搜索结果”页面是 WordPress 网站的重要组成部分。如果您正在开发插件或主题,则可以借助 is_search()
条件标记来检测这些页面。
此条件标记不接受任何参数。
is_search()
的使用示例
假设您想要包含一个具有相同字词的 Google 搜索链接。这是你要做的:
<?php if ( is_search() ) { $search_query = get_search_query(); echo '<div class="google-search"><a href="https://www.google.com.tr/search?q=' . $search_query . '">' . __( 'Search with Google', 'translation-domain' ) . '</a>'; } ?>
is_tag()
想要以不同的方式对待标签档案吗?条件标签 is_tag()
可以帮助您。想要以不同的方式对待特定标签吗?只需传递标签名称、slug 或 ID(或它们的数组)作为参数即可!
此条件标记只有一个参数:
$tag
(数组/字符串,可选):标签的 ID、名称、slug 或这些的数组。 (默认:无)has_excerpt()
WordPress 帖子中有两种“摘录”:如果您想自己编写,则称为“自定义摘录”,如果您不想,则会生成“自动摘录”(默认情况下,它是帖子的前 55 个字)。 has_excerpt()
条件标签检查用户是否为给定帖子设置了自定义摘录。
此条件标记只有一个参数:
$post_id
(整数,可选):帖子 ID。 (默认:当前帖子 ID)has_excerpt()
的使用示例
假设您正在制作一个主题,并且希望在主页中显示自定义摘录,但您不想显示自动摘录。这是你要做的:
<?php if ( has_excerpt() ) { the_excerpt(); } ?>
is_main_query()
WordPress 使用 WP_Query
类来列出帖子 - 无论是帖子标题列表还是存档页面中完整帖子的索引。许多函数使用 WP_Query
类,is_main_query()
就是其中之一。此条件标记检测查询是否不是“辅助查询”,而是“主查询”。
此条件标记不接受任何参数。
has_tag()
有时,您可能需要检查帖子是否具有某些标签,以使该帖子(或多个帖子)的行为与其他帖子不同。为此,您可以使用 has_tag()
来检查帖子是否带有您指定的标签。 (注意:它允许您指定多个要查找的标签。)
此条件标记有两个参数:
$tag
(数组/字符串,可选):标签的名称、ID、slug 或这些的数组。 (默认:无)$post
(对象,可选):发布以进行检查。 (默认:当前帖子)has_tag()的使用示例
假设您的博客文章有“徽章”(例如“新”、“精选”和“过时”),这些“徽章”将通过使用相应的标签来激活,并且您想要回显帖子内的图像。这是你要做的:
<?php if ( has_tag( 'badge-new' ) ) { echo '<div class="post-content badge-new">'; } else if ( has_tag( 'badge-featured' ) ) { echo '<div class="post-content badge-featured">'; } else if ( has_tag( 'badge-obsolete' ) ) { echo '<div class="post-content badge-obsolete">'; } else { echo '<div class="post-content">'; } // Post content. echo '</div>'; ?>
is_blog_installed()
如果安装了 WordPress,此特定条件标记将返回 TRUE
。我添加此条件标签仅供参考,因为从技术上讲,它对于插件或主题开发人员来说没有用处,也许可以在某些外部 WordPress 工具中使用。
此条件标记不接受任何参数。
is_super_admin()
在多站点网络中,有一个“超级管理员”可以管理所有站点。要检测用户是否是“超级管理员”(或常规 WordPress 安装中的常规管理员),您可以使用 is_super_admin()
条件标签。
此条件标记只有一个参数:
$user_id
(整数,可选):用户 ID。 (默认:当前用户)is_super_admin()的使用示例
假设您不喜欢“Howdy”问候语并且想要更改它,但您的用户喜欢它并希望保留它。在这种情况下,您需要一个仅适用于您的解决方案。这是你要做的:
<?php // Source: http://www.paulund.co.uk/change-the-wordpress-howdy-text add_filter( 'admin_bar_menu', 'replace_howdy' ); function replace_howdy( $wp_admin_bar ) { $my_account = $wp_admin_bar->get_node( 'my-account' ); $newtitle = __( 'Hi boss!', 'translation-domain' ); $wp_admin_bar->add_node( array( 'id' => 'my-account', 'title' => $newtitle ) ); return $wp_admin_bar; } ?>
is_page()
在 WordPress 中,“页面”是五种内置帖子类型之一,其他类型还有帖子、修订、附件和导航菜单。如果您想检测某个页面(或一般情况下的任何页面),您可以使用条件标签 is_page()
。
此条件标记只有一个参数:
$page
(数组/字符串,可选):页面 ID、标题、slug 或其中的数组。 (默认:无)在这一部分中,我们回顾了 WordPress 中另一批记录的 65 个条件标签。在接下来的部分中,我们将讨论剩下的 39 篇文章。如果您有任何问题或意见,请在下面提出 - 如果您喜欢这篇文章,请不要忘记分享!
下一部分见!