wp条件判断标签

在模板文件中,条件判断标签可以根据条件来改变展示的内容。WordPress根据指定的条件来显示不同的内容。条件标签通常与PHP的if/else语句一起使用。

例如,你可以通过判断一个用户是否已经登陆来展示一个不同的问候语:

在哪里使用条件判断标签

你必须在wp执行查询以后再使用条件判断标签。WordPress会在执行查询之前加载functions.php,因此直接在这个文件中使用条件标签是不起作用的。

可以通过以下两种方式使用条件标签:

  • 在模板文件中使用
  • 在functions.php中创建一个函数,并为其添加钩子动作或过滤器,以便在稍后的某个点触发。

条件标签介绍

以下列出了在相对应的状态下为true的标签。有些标签可以接受参数。

主博客页

is_home()

当展示主博客页的时候它为true,通常是按从大到小的时间排序的文章列表。如果首页被设置为一个静态页面,那么这个会在“设置 > 阅读”页设置的文章列表页面中返回true。

首页

is_front_page()

当展示首页的时候它的返回值为true。

后台管理页

is_admin()

当打开仪表盘或后台管理页面时返回true。

单篇文章页

is_single()

当在单文章页(包括附件以及自定义文章类型)时返回true。当在一个静态页时返回false。

is_single('17')

is_single()也可以接收文章ID和其他参数(标题,别名)。上面的例子会在文章ID或其他参数为17时返回true。

单个文章、静态页或附件

is_singular()

is_single()、is_page()和is_attachment()任意一个为真时返回true。

置顶的文章

is_sticky()

它接收文章ID作为参数来判断该篇文章是否被置顶。如果没有提供文章ID,则默认使用当前循环的文章ID。

文章类型

get_post_type()

这个标签可以用来获取文章的类型,然后使用如下语句进行判断

if('book' == get_post_type()) ...

post_type_exists()

在注册了给定的文章类型时返回true。

某种文章类型的归档

is_post_type_archive()

当在任一种文章类型的归档页时返回true。

在任何包含文章的页面

comments_open()

允许评论时返回true。

pings_open()

允许发送pings时返回true。

“PAGE”页

is_page()

当post_type为“page”时返回true。参数和上面的is_single()相同。

子页面

虽然没有is_subpage()函数,但是你可以用一些代码来实现:

你可以创建一个is_subpage()函数,并把它添加到functions.php中。

是否是页面模板

is_page_template()

判断当前是否是在模板页面中。

分类页

is_category()

当显示分类归档页时返回true。参数可以为ID、名称以及别名。

标签页

is_tag()

当显示标签归档页时返回true。参数与is_category()相同。

has_tag()

判断当前文章是否存在某个标签。必须在WordPress循环内使用。

分类法页

is_tax()

当展示任何一个分类法页面时返回true。参数请点击函数链接查看。

has_term()

判断当前文章是否属于某个给定的项。

是否已经注册过分类法

texonomy_exists()

当通过register_texonomy()注册了该分类法时返回true。

作者归档页

is_author()

当展示作者归档页面时返回true。

多作者站点

is_multi_author()

当有多个作者在一个站点发表过文章时返回true。

日期归档页

is_date()

当展示任何依据日期来归档的页面时返回true。相似的条件判断标签如下

is_year()

is_month()

is_day()

is_time()

is_new_day()

任何一个归档页

is_archive()

当展示任何一种类型的归档页时返回true。分类、标签、作者以及基于日期的页面都是归档页。

搜索结果页

is_search()

当展示搜索结果页时返回true。

404页

is_404()

当服务器返回“HTTP 404”时返回true。

附件

is_attachment()

当展示文章或页面的附件时返回true。

聚合

is_feed()

当站点请求聚合时返回true。这个函数通常供wp内部或插件开发者使用。

预览

is_preview()

当文章以草稿模式被预览时返回true。

是否存在摘要

has_excerpt()

当当前文章存在摘要时返回true。

是否赋予导航菜单

has_nav_menu()

当注册过的导航菜单位置已分配菜单时返回true。

是否在循环内

in_the_loop()

查看是否是在循环内。

侧边栏是否是活动状态

is_active_sidebar()

查看给定的侧边栏是否是活动状态(即是否在使用)。

子站点(多站点)

is_multisite()

查看当前站点是否通过wp多站点安装的。

主站点(多站点)

is_main_site()

判断当前站点是否是主站点。

多站点管理员

is_super_admin()

判断当前用户是否是多站点的超级管理员

插件是否已激活

is_plugin_active()

子主题

is_child_theme()

查看当前主题是否是子主题

主题特征支持

current_theme_supports()

查看主题是否存在指定的特征

本文翻译自:Conditional Tags

 

发表评论