所以我在一个月前在我的Magento网站上设置了Fishpigs Wordpress扩展,一切运行良好。在某个地方,不知何故,在上周,格式化变得混乱。追踪出错的地方,我发现帖子页面停止使用我的自定义.phtml布局('wordpress.phtml')。所有其他与wordpress相关的页面都使用了该模板。
我添加了
<wordpress_default>
<reference name="root">
<action method="setTemplate"><template>page/wordpress.phtml</template></action>
</reference>
</wordpress_default>
在我的 local.xml 中,一切都很好。今天我甚至尝试在扩展设置中设置所有布局和相同的交易,只有帖子页面没有呈现正确的布局。这是一个奇怪的问题,我不知道从哪里开始寻找......
答案 0 :(得分:3)
我在这里看到三种可能性(假设你已经完成了清除缓存存储的神圣仪式)
对帖子页面的请求未加载您的local.xml
文件,可能是因为它使用了不同的主题和/或设计包
帖子页面未发出wordpress_default
句柄,因此虽然您的local.xml
文件已包含在内,但您的setTemplate
操作永远不会被调用
布局更新在布局更新后(通过XML或直接在PHP代码中)称为,将根模板设置为其他内容。
调查这三项中的每一项,你应该找到答案。
关于选择#3,我没有安装FishPig扩展程序并且没有广泛使用它,但看起来扩展程序会在ViewController.php
中执行一些jiggery pokery以自动将模板设置为page/1column.phtml
如果wordpress页面对象(?我不知道这是什么)将字段设置为'onecolumn'
或'1column'
。
parent::loadLayout($handles, $generateBlocks, $generateXml);
if ($this->_getPage()) {
$keys = array('onecolumn', '1column');
$template = $this->_getPage()->getCustomField('_wp_page_template');
foreach($keys as $key) {
if (strpos($template, $key) !== false) {
if ($rootBlock = $this->getLayout()->getBlock('root')) {
$rootBlock->setTemplate('page/1column.phtml');
}
break;
}
}
}
我会开始寻找那里。