WordPress本身提供了多种内置函数用于判断当前页面类型,我们可以通过条件判断函数来精准控制页面逻辑。以下是常用判断方法:
1.判断是否为首页
if (is_front_page()) {
// 静态首页逻辑
}
if (is_home()) {
// 当博客页面作为文章列表页时触发
}
2.判断是否为单页面
if (is_page('about')) {
// 判断单页面
}
3.判断是否为文章内页
if (is_single()) {
// 判断文章内页
}
案例:判断当前页面ID为123
if (is_page() && get_queried_object_id() == 123) {
// 当前页面ID为123
}
4.判断是否为分类归档页面
if (is_category()) {
// 判断分类列表
}
5.使用is_archive()和is_tax()判断归档页面和分类/标签页面
if (is_archive()) {
// 归档页面,包括分类、标签、自定义归档等
} elseif (is_category() || is_tag() || is_tax()) {
// 分类、标签或自定义归档页面
}
6.判断日期页面
if (is_date() || is_year()) {
// 日期或年份归档页逻辑
}
7.判断搜索页面
if (is_search()) {
//判断搜索页面
}
8.判断自定义文章类型
使用 is_singular() 结合自定义文章类型名称,或直接使用 get_post_type() 函数:
// 方法1:直接判断当前是否为某个 CPT 的详情页
if (is_singular('your_cpt_slug')) {
// 仅在自定义文章类型 "your_cpt_slug" 的详情页执行
}
// 方法2:通过全局变量获取当前文章类型
global $post;
if (isset($post) && $post->post_type === 'your_cpt_slug') {
// 处理逻辑
}
9.归档页列表判断
使用 is_post_type_archive() 判断当前是否为自定义文章类型的归档页:
// 判断是否在自定义文章类型归档页
if (is_post_type_archive('your_cpt_slug')) {
// 例如:处理产品列表页逻辑(针对CPT为product的情况)
}
// 组合查询参数控制输出
if (is_post_type_archive('product')) {
// 自定义产品列表页的标题或样式
echo '<h1>产品目录</h1>';
}
10.判断自定义分类
使用 is_tax() 判断当前是否为某个自定义分类的归档页:
// 场景1:判断是否为特定分类法的任意归档页
if (is_tax('your_taxonomy_slug')) {
// 针对自定义分类法 "your_taxonomy_slug" 的归档页
}
// 场景2:判断是否属于特定分类法的某个具体术语(Term)
if (is_tax('product_category', 'electronics')) {
// 当访问自定义分类法 product_category 下别名 electronics 的归档页时触发
}
// 场景3:通过术语ID判断
if (is_tax('product_category', array(42, 56))) {
// 处理ID为42或56的归档页
}