以下是我的设想:
我正在使用body_class()
在我的<body>
按照Codex说明标记我已经创建了专门的页面模板(如所述here) 对于以下页面:
主页:page-home.php
服务:page-services.php
关于:page-about.php
联系人:page-contact.php
页面模板本身加载得很好。
问题开始于返回的类body_class()
: 对于前两页,它运行良好,返回.page-template-page-home-php
和.page-template-page-services-php
分别地对于其他两页,它只返回.page-template-default
, 尽管它显然不使用默认页面模板
Does anyone know what might be causing this?
我知道几种强制它添加类的方法,所以我不想寻找解决方法。我只是想知道为什么这个功能似乎不能在开箱即用的情况下正常工作。
UPDATE: 在body_class()
功能我已经缩小了原因;这两个页面的页面模板似乎没有保存到post meta表中。下一个问题是,这可能是什么原因造成的。
最合适的回答,由SO网友:Dre 整理而成
来自@milo的评论促使我仔细观察,我意识到我在寻找一个假阳性。“关于”页面和“联系”页面实际上显示了正确的行为;家庭和服务是错误的。似乎在某种程度上,这两个页面确实有自定义的页面模板,这些模板后来变成了专门的页面模板。然而,他们的身体类别仍然存在。
重要的是:when a custom page template is removed/deleted and there are no other custom page templates to fallback to, the value is not cleared from the post meta, which means it will continue to show those body classes until a new template is assigned.
我将在今天晚些时候检查这是否作为问题记录在WP Trac上。