You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress:如何在header.php中判断指定ID页面的发布状态(非当前)

判断指定ID页面的发布/草稿状态(全站生效)

WordPress确实没有专门的条件标签直接实现这个需求,但可以通过get_post()函数获取指定页面的详细数据,再判断它的状态,这个方法能在全站所有页面/文章的header.php里生效。

具体实现步骤:

  • 用get_post()传入目标页面的ID,获取该页面的对象
  • 先检查返回的对象是否有效(避免ID不存在时抛出错误)
  • 读取对象的post_status属性,判断是否为publish(发布)或draft(草稿)

代码示例(放在header.php里):

// 替换成你要检查的页面ID
$target_page_id = 123;
$target_page = get_post($target_page_id);

// 先确认页面存在
if ($target_page) {
    if ($target_page->post_status === 'publish') {
        // 页面处于发布状态时执行的代码
        echo '<p>目标页面已发布</p>';
    } elseif ($target_page->post_status === 'draft') {
        // 页面处于草稿状态时执行的代码
        echo '<p>目标页面是草稿</p>';
    } else {
        // 其他状态(如pending待审核、private私有等)
        echo '<p>目标页面处于' . esc_html($target_page->post_status) . '状态</p>';
    }
} else {
    // 指定ID的页面不存在
    echo '<p>未找到目标页面</p>';
}

注意事项:

  • get_post()默认会启用WordPress的对象缓存,不会频繁查询数据库,性能上无需担心
  • 记得用esc_html()处理输出的状态值,避免XSS风险
  • 除了publish和draft,WordPress还有其他帖子状态,可根据需求扩展判断逻辑

内容的提问来源于stack exchange,提问作者Mathew Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 10:04:57