标签可以将内容分隔开分成不同的页面,并通过对应的函数获取分页的列表。下面的例子,可以判断当前是在第几个页面中,这样你就可以在某个页面中输出一些特别的信息(例如在第一个页面中,输出一个提示)。
例子1:
<?php
$paged = $wp_query->get( 'page' );
if ( ! $paged || $paged < 2 ) {
// 这里是不带有分页或者是带有分页页面的第一页
} else {
// 这里是带有分页的其他页面。
}
?>
例子2:
<?php
$paged = get_query_var( 'page' ) ? get_query_var( 'page' ) : false;
if ( $paged === false ) {
// 这里是不带有分页或者是带有分页页面的第一页
} else {
// 这里是带有分页的其他页面。
}
?>
判断子页面(sub-Pages)
WordPress 中的页面(page)是有父子级关系的,判断是否为子页面时,没有内置 is_subpage() 这样的函数,但是你可以使用下面的方法来判断。
方法1:
<?php
global $post;
// 下面代码需要用在主循环中,如果你在循环外使用,需要声明全局变量 $post
if ( is_page() && $post->post_parent ) {
// 这是一个子页面
} else {
// 这不是一个子页面
}
?>
建议将下面的方法2加入你的 functions.php 文件中,下面的 is_subpage() 函数的原理与方法1类似,但是可以返回当前页面父页面的 ID 或者是 false。
方法2:
<?php
function is_subpage() {
global $post; // 获取页面的相关信息
if ( is_page() && $post->post_parent ) { // 判断是否有父页面
return $post->post_parent; // 如果有返回父页面的 ID
} else {
return false; // 如果没有返回 false
}
}
?>
如果你经常需要判断子页面,强烈建议使用方法2。
如果需要判断父页面是否为某个特定的页面,可以使用方法3的代码。方法3代码会判断的更加详细,从而更加便于自定义和个性化(例如加一些图片)。
方法3:
<?php
if ( is_page( 'about' ) || '2' == $post->post_parent ) {
// 这个页面是“about”页面,或者它的父页面是“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'; // 如果都不满足的话,就用这个图片
}
?>
方法4:
是一个函数可以让你更容易的实现判断,只需要传递参数即可,如果正在访问对应页面,将会返回 True。
<?php
function is_tree( $pid ) { // $pid = 传递的 ID 参数是我们希望判断的页面 ID
global $post;
if ( is_page($pid) )
return true; // 当前正在这个页面,所以返回 True
$anc = get_post_ancestors( $post->ID );
foreach ( $anc as $ancestor ) {
if( is_page() && $ancestor == $pid ) {
return true;
}
}
return false; // 没有在当前页面,并且这个页面没有子页面
}
?>
可以将这个函数添加进 functions.php 中,调用 is_tree( 'id' ) 就可以判断当前页面是否是指定页面或者是这个页面的子页面。相比较方法3 is_tree( '2' ) 的功能和 is_page( 'about' ) || '2' == $post->post_parent 是一样的。
注意,如果页面乘此多于一级,那么父级页面指的是上一层页面,不是这个页面层次关系最顶层的页面。
判断页面模版(Page Template)
判断当前页面是否由某个页面模版生成的,
is_page_template()
判断是否使用了一个页面模版。
is_page_template( 'about.php' )
判断应用的页面模版是否是 “about” 这个模板。注意,这个参数与其他参数不同,如果你想判断是否是由某个页面模版声称的,你需要将那个页面模版的文件名填上去,包括后面的 .php 后缀。
判断分类页面(Category)
is_category()
判断当前页面是否为分类目录或者存档(archive)页面。
is_category( '9' )
判断当前分类页面的 ID 是否为 9。
is_category( 'Stinky Cheeses' )
判断当前分类页面的名字是否为“Stinky Cheeses”。
is_category( 'blue-cheese' )
判断当前分类页面的别名是否为“blue-cheese”。
is_category( array( 9, 'blue-cheese', 'Stinky cheeses' ) )
同上,你懂的。
in_category( '5' )
判断当前文章是否属于某个特定分类目录(id 为 5),返回 True。注意,这里是 in 而不是 is,与上面的不同。
in_category( array( 1,2,3 ) )
判断当前文章是否属于某些特定的分类目录。
判断标签页面(Tag)
is_tag()
判断当前页面是否为标签页面。
is_tag( 'mild' )
判断当前标签页面的别名是否为 “mild”。
is_tag( array( 'sharp', 'mild', 'extreme' ) )
判断当前标签页面的别名是否是 “sharp”、“mild”或者“extreme”中的某个。
has_tag()
判断当前文章是否有一个标签,必须用在主循环中。
has_tag( 'mild' )
判断当前文章是否有标签 “mild”。
has_tag( array( 'sharp', 'mild', 'extreme' ) )
判断当前文章是否有数组里的那些标签。
判断自定义分类页面(Taxonomy)
自定义分类页面并非是上面的 category 那种分类页面,而是指 WordPress 分类系统页面。在 WordPress 默认内置了两种分类系统:category 和 tag,同时支持开发者自定义分类系统。
is_tax()
判断当前页面是否为一个分类系统的存档页面。
is_tax( 'flavor' )
判断当前页面是否为一个名为 flavor 自定义分类的存档页面。
is_tax( 'flavor', 'mild' )
判断当前自定义分类 flavor 页面的别名是否为 mild。
is_tax( 'flavor', array( 'sharp', 'mild', 'extreme' ) )
判断当前自定义分类 flavor 页面的页面是否为 sharp、mild、extreme 中的一个。
has_term()
判断当前页面是否带有自定义分类。
has_term( 'green', 'color' )
判断当前页面是否是否带有别名为 green 的自定义分类 color。
has_term( array( 'green', 'orange', 'blue' ), 'color' )
判断当前页面是否是否带有数组中的自定义分类 color。
判断作者页面(Author)
is_author()
判断当前页面是否是一个作者存档页面。
is_author( '4' )
判断当前页面是否为 id 为 4 的作者页面。
is_author( 'Vivian' )
判断当前存档页面是否是 Vivian(Nickname) 的作者存档页面。
is_author( array( 4, 'john-jones', 'Vivian' ) )
判断当前存档页面是否属于 id 为 4,或者名字为 “john-jones”、“Vivian” 的作者存档页面。
is_multi_author()
判断当前博客是否有超过一个作者发表过文章。WordPress 3.2 以上版本可用。
判断是否为日期存档页面(Date Page)
is_date()
判断当前页面是否为任何的按时间存档的页面。
is_year()
判断当前页面是否为按年份存档的页面。
is_month()
判断当前页面是否为按月份存档的页面。
is_day()
判断当前页面是否为按日期存档的页面。
is_time()
判断当前页面是否为按照小时、分钟、秒存档的页面。
is_new_day()
判断当前页面是否为文章日期的新的一天,必须用在主循环中。
判断任意存档页面(Any Archive Page)
is_archive()
判断当前页面是否为一个存档页面,包括:分类、标签、作者页面、日期存档页面等。
判断搜索结果页面(Search Result Page)
is_search()
判断当前页面是否为一个搜索结果页面。
判断是否为 404 页面(404 Not Found Page)
is_404()
判断当前页面是否带有 “HTTP 404:Not Found” 错误。
判断被分页页面(Paged Page)
is_paged()
这里的分页指的是存档页面,如果一个日志或者静态页面的内容通过通过
关注微信公众号themebest
- 第一时间获取主题更新动态,优惠信息
- WordPress动态、教程分享