在WordPress中,is_page()是一个非常实用的条件判断函数,主要用于检测当前页面是否为特定的 “页面”(Page 类型的文章)。它在主题开发中经常被用来来根据不同页面执行不同的代码逻辑。
is_page() 的基本用法
检测是否为任何页面
不带参数调用时,用于判断当前页面是否为 WordPress 的 “页面”(Page)类型:
if (is_page()) {
// 如果是页面,执行这里的代码
echo "这是一个页面";
}
通过页面 ID 检测
可以传入页面的 ID 来判断是否为指定页面:
if (is_page(42)) { // 42 是页面的 ID
// 当页面 ID 为 42 时执行
}
通过页面别名(slug)检测
可以使用页面的别名(slug)进行判断:
if (is_page('about-us')) { // 'about-us' 是页面的别名
// 当页面别名为 about-us 时执行
}
通过页面标题检测
可以使用页面的标题进行判断(不推荐,因为标题可能会被修改):
if (is_page('关于我们')) { // '关于我们' 是页面的标题
// 当页面标题为“关于我们”时执行
}
检测多个页面
可以传入数组来同时检测多个页面(支持 ID、别名或标题的混合使用):
if (is_page(array(42, 'about-us', '联系我们'))) {
// 当页面是 ID 为42、别名为about-us 或标题为“联系我们”的页面时执行
}
使用场景示例
在模板中加载特定样式或脚本
if (is_page('contact')) {
// 为联系页面加载特定的表单样式
wp_enqueue_style('contact-form-style', get_template_directory_uri() . '/css/contact.css');
}
在页面中显示不同内容
if (is_page('home')) {
echo '<div class="welcome-banner">欢迎访问首页</div>';
} elseif (is_page('about')) {
echo '<div class="about-intro">关于我们的介绍</div>';
}
在侧边栏中显示不同内容
// 在 sidebar.php 中
if (is_page('products')) {
dynamic_sidebar('products-sidebar'); // 产品页面专用侧边栏
} else {
dynamic_sidebar('default-sidebar'); // 默认侧边栏
}
说明
is_page() 只能在 WordPress 循环加载后使用,通常在模板文件(如 page.php、single.php 等)中使用
对于静态首页,is_front_page() 可能是更合适的判断函数
对于博客文章列表页,应使用 is_home()
当检测失败时,函数返回 false
通过灵活运用is_page()函数,你可以为不同的页面创建个性化的显示效果和功能,提升WordPress网站的灵活性和用户体验。