当我们安装主题和插件时,都会向…
![发现WordPress条件标签](https://shop.mac163.com/wp-content/uploads/2019/11/9fa2b48.png)
我们都在WordPress下的开发中使用条件语句,对吗?但是您知道所有内置的WordPress条件标签吗?它们很棒,因为有了这些标签,创建条件语句非常容易。例如,您可以仅为某些用户显示内容,或者仅在页面使用特定的自定义模板时才加载脚本,或者如果该帖子是粘性的,甚至可以设置帖子的样式。
条件标签可以在主题或插件中使用,没关系,但是请注意,在某些插件中,有时使用某些标签(实际上是所有主题特定的标签)会有些棘手。
可用的条件标签
以下是可用的条件函数的列表:
- comments_open
- has_tag
- has_term
- in_category
- is_404
- is_admin
- is_archive
- is_attachment
- is_author
- is_category
- is_child_theme
- is_comments_popup
- is_date
- is_day
- is_feed
- is_front_page
- is_home
- is_month
- is_multi_author
- is_multisite
- is_main_site
- is_page
- is_page_template
- is_paged
- is_preview
- is_rtl
- is_search
- is_single
- is_singular
- is_sticky
- is_super_admin
- is_tag
- is_tax
- is_time
- is_trackback
- is_year
- pings_open
- post_type_exists
- is_post_type_hierarchical
- is_post_type_archive
- is_comments_popup
- 分类学存在
- is_new_day
- has_excerpt
- has_nav_menu
- 在循环
- is_active_sidebar
- is_main_site
- is_plugin_active
- is_child_theme
- current_theme_supports
您可能知道其中一些,但是您真的知道is_single_()和is_singular()之间的区别吗?还是在id_day()和is_date()之间?您知道is_preview()吗?要了解每个功能的工作原理,只需单击标签名称,并仔细阅读抄本中的说明。
所有条件标签返回TRUE或FALSE
条件标记是我最喜欢的WordPress内置功能之一,我真的鼓励您在代码中广泛使用它们。所有函数始终返回TRUE或FALSE,而不返回ID或array()。
与模板层次结构的密切关系
您可能知道,WordPress使用了功能非常强大的模板层次结构系统。好吧,条件标签的使用与此层次结构密切相关。这是根据要访问的URL选择要使用的模板页面的原则。
条件标签接受许多参数
使用这些条件标签时,您必须知道可以将它们传递给不同的变量,例如ID,段或数组。这是一个使用is_author()函数从抄本中获取的示例:
- is_author()
- 显示任何“作者”页面时。
- is_author('4')
- 显示作者编号(ID)4的存档页面时。
- is_author('Vivian')
- 显示昵称为“ Vivian”的作者的存档页面时。
- is_author('john-jones')
- 当显示具有尼斯名“ john-jones”的作者的存档页面时。
- is_author(array(4,'john-jones','Vivian'))
- 当作者的存档页面为用户ID 4或 user_nicename “ john-jones”或 昵称 “ Vivian”时。
例子
这几乎是所有条件函数的工作方式,但是您当然可以组合许多条件:
if ( is_home() && in_category( array( 9, 'blue-cheese', 'Stinky Cheeses' ) ) ) { the_content(); } else { the_excerpt(); }
或者,如果发生某种情况或其他情况,您可以执行以下操作:
if ( is_home() || in_category( array( 9, 'blue-cheese', 'Stinky Cheeses' ) ) ) { the_content(); } else { the_excerpt(); }
如果您想做一个负面条件,请使用“!”。“:
$paged = $wp_query->get( 'page' ); if ( ! $paged || $paged < 2 ) { // This is not a paginated page (or it's simply the first page of a paginated page/post) } else { // This is a paginated page. }
最后,使用条件标记就像其他任何“ else if” PHP语句一样:
if ( is_page( 'about' ) || '2' == $post->post_parent ) { // the page is "About", or the parent of the page is "About" $bannerimg = 'about.jpg'; } elseif ( is_page( 'learning' ) || '56' == $post->post_parent ) { $bannerimg = 'teaching.jpg'; } elseif ( is_page( 'admissions' ) || '15' == $post->post_parent ) { $bannerimg = 'admissions.jpg'; } else { $bannerimg = 'home.jpg'; // just in case we are at an unclassified page, perhaps the home page }
创建自定义条件标签
在某些情况下,您需要创建自定义条件函数。这很容易做到,但是很多时候函数名称并没有遵循核心开发人员所使用的逻辑。请使用使用前缀相同的命名约定,如“ 确保对方 “,“ Has_或许有帮助 “,“ IN_ “。如果您不是唯一一个使用特定脚本的人,这尤其有用。
![微信二维码 微信二维码](https://shop.mac163.com/wp-content/uploads/2019/08/bdd8742-150x150.jpg)
微信扫描二维码联系我们!
我们在微信上24小时期待你的声音
提供外贸路由器设备产品,轻松翻墙,解答:WP主题推荐,WP网站建设,Google SEO,百度SEO,专业服务器环境搭建等!
需要提供WordPress主题/插件的汉化服务可以随时联系我们!另外成品WordPress网站以及半成品WordPress网站建设,海外Google SEO优化托管服务,百度SEO优化托管服务,Centos/Debian服务器WP专用环境搭建,WP缓存服务器搭建,我们都是你的首选,拥有多年WP开源程序服务经验,我们一直在坚持客户体验,没有最好,只有更好!