首页 » 建站技术 » WordPress » 浏览内容

WordPress条件标签is_xxx()


2010-09-11 21:40:04 3,485 0 发表评论 字体: 作者:C.K.
标签: WordPress代码

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

简介

在模板文件中,我们可以根据能与某页面相匹配的条件,利用条件标签更改该页面上将要显示的内容以及内容的显示方式。例如,如果希望在博客首页文章列表的上方显示一段文字,可以利用 is_home()条件标签轻松实现这一效果。

注意:条件标签与WordPress模板层级密切相关。

条件
所有条件标签都会检查是否有条件可符合相应页面,之后返回TRUE或者FALSE。下面列出能够使各个条件标签返回TRUE的条件:

主页
is_home()
显示博客主页时,该条件标签返回TRUE。
注意:如果将静态页面作为博客主页,该标签会在显示日志页面时返回TRUE。

标题页
is_front_page()
显示博客头版消息(无论是日志或是页面)。当系统显示博客主页且管理面板的设置>阅读菜单下“主页显示为”选项设为最近发表的文章”,或者’设置>阅读菜单下“主页显示为”选项设为且”主页”是当前被显示的页面时,is_front_page()标签返回TRUE。注意:该标签在WordPress 2.5版本中首次亮相。

管理栏
is_admin()
显示控制板或管理栏时,is_admin()标签返回TRUE。

单篇日志页面
is_single()
显示任何单独一篇日志时,is_single()标签返回TRUE。
is_single(’17′)
显示编号为17的单篇日志时,该标签返回TRUE。
is_single(‘Irish Stew’)
显示标题为”Irish Stew”的单篇日志时,该标签返回TRUE。
is_single(‘beef-stew’)
显示别名为”beef-stew”的单篇日志时,该标签返回TRUE。
is_single(array(17,’beef-stew’,’Irish Stew’))
当所显示的单篇日志编号为17,或post_name为”beef-stew”,或post_title为”Irish Stew”时,is_single(array(17,’beef-stew’,’Irish Stew’))标签返回TRUE。注意:数组功能首次出现于WordPress 2.5。


置顶日志
is_sticky()
若当前日志的”Stick this post to the front page(将该日志在首页置顶)”复选框被选中,is_sticky()返回TRUE。此时标签没有提供日志的编号变量,因此系统会用到WordPress主循环the Loop的日志编号。注意:该标签首次出现于WordPress 2.7。
is_sticky(’17′)
若编号为17的日志被置顶,该标签返回TRUE。

评论弹出式窗口
is_comments_popup()
显示的内容在评论弹出式窗口中时,该标签返回TRUE。

任何包含日志的页面
comments_open()
若评论允许当前日志在WordPress主循环中运行,该标签返回TRUE。

pings_open()

若引用通告ping允许当前日志在WordPress主循环中运行,该标签返回TRUE。

PAGE页面
这里的PAGE指的是WordPress的“页面”功能,而不是博客生成的网页。
is_page()
显示任何一篇页面时,该标签返回TRUE。
is_page(’42′)
显示编号为42的页面时,该标签返回TRUE。
is_page(‘About Me And Joe’)
若显示的页面的post_name为”About Me And Joe”,该标签返回TRUE。
is_page(‘about-me’)
若显示的页面的post_name(别名)为”about-me”,该标签返回TRUE。
is_page(array(42,’about-me’,’About Me And Joe’))
当所显示的页面编号为42,或post_name为”about-me”,或post_title为”About Me And Joe”时,is_page(array(42,’about-me’,’About Me And Joe’))标签返回TRUE。注意:数组功能首次出现于WordPress 2.5。

子页面
目前is_subpage()函数尚未出现,但我们可以用以下代码来判断某页面是否子页面:

<?php
  • // Get $post if you're inside a function
  • global $post;
  •  
  • if ( is_page() && $post->post_parent ) {
  •     // This is a subpage
  •  
  • } else {
  •     // This is not a subpage
  • }
  • ?>
  • 也可以将这一功能添加到functions.php文件中:

    function is_tree($pid) {    // $pid = The page we're looking for pages underneath
  •     global $post;       // We load this as we're outside of the post
  •     if(is_page()&&($post->post_parent==$pid||is_page($pid))) return true; // Yes, it's in the tree
  •     else return false;  // No, it's outside
  • };
  • 然后调用is_tree(‘id’)来判断页面是否在目录树中。在下面的代码示例中,我们可以用is_tree(’2′)来代替第一个if标签中的”is_page(‘about’) || $post->post_parent == ’2′”。注意,如果有两层以上页面,父页面指的是子页面的上一级页面而不是顶级页面。

    如果要判断当前页面是否是某个特定页面或者是否是某一页面的子页面(例如在一个基于页面的网站的不同版块上显示不同banner广告),可以先从后台获取父页面的ID,然后按以下方式进行编码:

    <?php
  •  
  • if ( is_page('about') || $post->post_parent == '2' ) {
  •     $bannerimg = 'home.jpg';
  •  
  • } elseif ( is_page('learning') || $post->post_parent == '56' ) {   
  •     $bannerimg = 'teaching.jpg';
  •  
  • } elseif ( is_page('admissions') || $post->post_parent == '15' ) {
  •     $bannerimg = 'admissions.jpg';
  •  
  • } else {
  •     $bannerimg = 'home.jpg'; // Fall-through  
  • }  
  •  
  • ?>
  • 如果希望进行多次页面判断,最好创建一个长期函数(is_cpage())。例如,如果将is_subpage()引入wp,用户就可以在functions.php文件中修改函数而不必做其它多余改动了。
    Is a Page模板

    自WordPress 2.5版起,用户可以通过Is a Page模板来判断目前是否位于页面模板中,或是否在使用某个特定的页面模板。

    is_page_template()

    目前是否使用了页面模板

    is_page_template(‘about.php’)

    是否使用页面模板’about’?注意:页面模板与其它条件标签有所不同,用户需要使用文件名(如 about.php 或my_page_template.php)来指定某个页面模板。
    类别页面

    is_category()

    显示类别存档页面页面时,is_category()标签返回TRUE。

    is_category(’9′)

    显示类别ID为9的存档页面时,is_category(’9′)标签返回TRUE。

    is_category(‘Stinky Cheeses’)

    显示雷冰名称为“Stinky Cheeses”的存档页面时,is_category(‘Stinky Cheeses’)标签返回TRUE。

    is_category(‘blue-cheese’)

    显示类别别名为”blue-cheese”的存档页面时,is_category(‘blue-cheese’) 标签返回TRUE。

    is_category(array(9,’blue-cheese’,’Stinky Cheeses’))

    当所显示的类别存档term_ID为9,或别名为”blue-cheese”,或类别名称为”Stinky Cheeses”时,is_category(array(9,’blue-cheese’,’Stinky Cheeses’)) 标签返回TRUE。注意:数组功能首次出现于WordPress 2.5。

    in_category(’5′)

    若当前日志属于某个指定ID的类别,in_category(’5′) 标签返回TRUE。

    注意:判断条件是否符合时,请不要将“in”写作“is”,两者有很大区别。
    标签页面

    is_tag()

    显示标签存档页面时,is_tag() 会返回TRUE。

    is_tag(‘mild’)

    显示别名为“mild”的标签的存档页面时,is_tag(‘mild’) 返回TRUE。

    is_tag(array(‘sharp’,’mild’,’extreme’))

    若显示的标签别名为”sharp”、 “mild”或”extreme”,is_tag(array(‘sharp’,’mild’,’extreme’)) 返回TRUE。注意:数组功能首次出现于WordPress 2.5。

    has_tag()

    若当前日志有标签,has_tag()返回TRUE。该标签必须用在WordPress主循环 中。注意:has_tag标签首次出现在WordPress 2.6版中。

    has_tag(‘mild’)

    若当前日志标签为“mild”,as_tag(‘mild’) 返回TRUE。

    has_tag(array(‘sharp’,’mild’,’extreme’))

    若当前日志标签为数组中任一个标签,has_tag(array(‘sharp’,’mild’,’extreme’)) 返回TRUE。
    分类法页面

    is_tax()
    显示任何分类法归档页面时,is_tax()会返回TRUE。
    is_tax(‘mild’)
    显示分类法归档页面别名为“mild”时,is_tax(‘mild’)返回TRUE。
    is_tax(array(‘sharp’,’mild’,’extreme’))
    当前分类法归档别名为数组中的任一个”sharp”, “mild”, 或 “extreme”时,is_tax(array(‘sharp’,’mild’,’extreme’)) 返回TRUE。

    注册过的分类法

    is_taxonomy()
    当某一种分类法通过register_taxonomy()注册, is_taxonomy() 返回TRUE。

    作者页面

    is_author()

    显示作者页面时,is_author()返回TRUE。

    is_author(’4′)

    若显示的是ID为4的作者的存档页面,is_author(’4′) 返回TRUE。

    is_author(‘Vivian’)

    若显示的是用户名为“Vivian”的作者的存档页面,is_author(‘Vivian’) 返回TRUE。

    is_author(‘john-jones’)

    若显示的是用户名为“john-jones”的作者的存档页面,is_author(‘john-jones’) 返回TRUE。

    is_author(array(4,’john-jones’,’Vivian’))

    若页面的用户名ID为4,或user_nicename为“john-jones”,或用户名为 “Vivian”,is_author(array(4,’john-jones’,’Vivian’)) 返回TRUE。注意:数组功能首次出现于 WordPress 2.5。
    日期页面

    is_date()

    显示日期相关的存档页面(如月存档,年存档,日存档等基于时间的存档页面)时,is_date() 返回TRUE。

    is_year()

    显示年存档信息时,is_year() 返回TRUE。

    is_month()

    显示月存档信息时,is_month() 返回TRUE。

    is_day()

    显示日存档信息时,is_day() 返回TRUE。

    is_time()

    显示某时、某分或某秒的存档信息时,is_time() 返回TRUE。
    存档页面

    is_archive()

    无论显示何种存档页面时,is_archive() 都会返回TRUE。类别存档、标签存档、作者存档以及日期存档页面都属于存档页面。
    搜索结果页面

    is_search()

    显示搜索结果页面时,is_search() 返回TRUE。

    1 2

      网站统计 Statistics

      • 创建时间: 2005年1月3日 距今4888 天
      • 日志总数: 2461
      • 评论总数: 630
      • 标签总数: 654
      • 链接总数: 273
      • 最后更新: 2017-7-1 18:16:33
      • 您是本站第 13543927 位访客

      广告区 Guǎng Gào