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

求助:从template-contact.php获取当前页面ID显示错误问题

搞定template-contact.php页面ID获取错误的问题

嘿,我来帮你解决这个页面ID不对的问题!你拿到85而不是实际的96,大概率是当前用的ID获取逻辑没精准定位到目标页面,下面给你几个实用的解决办法:

方法1:用get_queried_object_id()精准拿当前页面ID

这个函数是WordPress里获取当前显示页面ID的黄金方案,不管你的模板是不是被多个页面复用,它都能准确返回当前访问页面的ID。把你原来的ID获取代码替换成:

$correct_page_id = get_queried_object_id();
// 先测试输出确认结果
echo "当前页面ID:" . $correct_page_id;

测试一下,应该就能拿到96了,之后用这个ID去调取元数据就行。

方法2:通过页面slug精准定位

如果你确定联系页面的固定链接slug是不变的(比如叫contact),可以直接通过slug获取ID,完全不会受模板复用的影响:

$contact_page = get_page_by_path('contact');
if ($contact_page) {
    $correct_page_id = $contact_page->ID;
}

只要slug没改,这个方法永远能拿到正确的页面ID。

方法3:检查模板的页面关联情况

有时候可能你的template-contact.php被多个页面设置成了模板,比如ID85的页面也用了这个模板?去后台的“页面”列表里,找到ID96的页面,确认它的模板选项是不是选的Contact Template,同时看看ID85的页面是不是也绑定了同一个模板,避免访问错了页面。

方法4:直接调取当前页面元数据(不用单独拿ID)

如果你只是想获取当前页面的元数据,其实可以一步到位,不用单独获取ID,直接用下面的代码:

// 把'your_meta_key'换成你要调取的元数据键名
$page_meta = get_post_meta(get_queried_object_id(), 'your_meta_key', true);

这样直接用get_queried_object_id()作为参数,就能精准拿到当前页面的元数据了。

记得先测试输出ID确认是96之后,再去调取元数据,这样就不会出错啦!

内容的提问来源于stack exchange,提问作者Anand Siddharth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:05:46