![](/img/trans.png)
[英]Magento - injecting custom phtml block into 2columns-left.phtml not working
[英]Magento Layot XML - Change template for 2columns-left.phtml
我正在一个基于Ultimo主题并使用fishpig wordpress扩展名的Magento项目。
我正在尝试仅更改wordpress页面上的2columns-left.phtml模板,但无法使其正常工作!
要进一步解释该方案:
Ultimo主题集的主要内容在左列之前,并使用float: right;
在主要内容上使用css规则将其定位在左列之后。 HTML的结构如下:
<div class="col-main grid4-3 grid-col2-main in-col2">
[omitted code]
</div>
<div class="col-left sidebar grid4-1 grid-col2-sidebar in-sidebar"><div class="wp-sidebar">
[omitted code]
</div></div>
该HTML由ultimo / default / template / page / 2columns-left.phtml通过以下方式生成:
<div class="col-main grid4-3 grid-col2-main in-col2">
<?php echo $this->getChildHtml('global_messages') ?>
<?php echo $this->getChildHtml('content') ?>
</div>
<div class="col-left sidebar grid4-1 grid-col2-sidebar in-sidebar"><?php echo $this->getChildHtml('left') ?></div>
我想使用自己的模板文件将侧边栏仅放在wordpress页面的HTML中的主要内容之前,这样wordpress类别将堆叠在移动设备中主要内容的上方。
我尝试创建自己的名为page / wp-2columns-left.phtml的模板,并使用以下代码和主题local.xml中的其他一些变体将其设置为网站的Wordpress部分:
<wordpress_default>
<reference name="root">
<action method="setTemplate"><template>page/wp-2columns-left.phtml</template></action>
</reference>
</wordpress_default>
但是仍然调用原始的2columns-left.phtml模板。 我可以直接编辑模板文件,并在网站的WordPress部分获得所需的结果,但这会影响Magento网站的其余部分,这不是一个好习惯。
您可以使用XML布局代码来实现。 以下代码将更改在WordPress中创建的所有页面的模板:
<wordpress_page_view>
<reference name="root">
<action method="setTemplate">
<template>page/2columns-left.phtml</template>
</action>
</reference>
</wordpress_page_view>
以下代码将更改ID为32的WordPress页面模板:
<wordpress_page_view_32>
<reference name="root">
<action method="setTemplate">
<template>page/2columns-left.phtml</template>
</action>
</reference>
</wordpress_page_view_32>
将此代码添加到XML布局文件后,您将需要刷新Layout XML缓存(如果已启用)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.