Magento Layot XML-更改2columns-left.phtml的模板


Magento Layot XML - Change template for 2columns-left.phtml

我正在进行一个Magento项目,该项目基于Ultimo主题,并使用fishpig wordpress扩展。

我正试图仅在wordpress页面上更改2左侧列.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由ultio/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>

我想使用我自己的模板文件将侧边栏定位在HTML中的主要内容之前,仅用于wordpress页面,这样wordpress类别将堆叠在移动设备中的主要属性之上。

我试着创建了自己的模板,名为page/wp-2columns-left.phtml,并用下面的代码和主题中的一些其他变体为网站的Wordpress部分设置它local.xml:

<wordpress_default>
    <reference name="root">
        <action method="setTemplate"><template>page/wp-2columns-left.phtml</template></action>
    </reference>
</wordpress_default>

但仍在调用原始的2剩余列.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布局文件后,您将需要刷新布局XML缓存(如果已启用)。