Ivansの回答の代わりに、イベントオブザーバーを使用してテンプレートを設定することもできます。詳細な説明については、この回答を参照してください。使用できるコードは次のとおりです。
app / design / frontend / yourpackage / yourtheme / layout / local.xml
<?xml version="1.0" encoding="UTF-8"?>
<layout version="0.1.0">
<!-- your other adjustments for default, category_product_view and so on go here -->
<set_root_template>
<reference name="root">
<action method="setTemplate"><template>your/template.phtml</template></action>
</reference>
</set_root_template>
</layout>
app / code / yourpool / Company / Extension / Model / Observer.php
<?php
class Company_Extension_Model_Observer
{
/**
* Sets the template file for the root block.
*
* Uses the event 'controller_action_layout_load_before'.
*
* @param Varien_Event_Observer $observer
* @return YourCompany_YourExtension_Model_Observer
*/
public function setRootTemplate(Varien_Event_Observer $observer)
{
$layout = $observer->getEvent()->getLayout()->getUpdate();
$layout->addHandle('set_root_template');
return $this;
}
}
app / code / yourpool / Company / Extension / etc / config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<config>
<modules>
<Company_Extension>
<version>0.0.1</version>
</Company_Extension>
</modules>
<frontend>
<events>
<controller_action_layout_load_before>
<observers>
<company_extension_set_root_template>
<type>singleton</type>
<class>company_extension/observer</class>
<method>setRootTemplate</method>
</company_extension_set_root_template>
</observers>
</controller_action_layout_load_before>
</events>
<!-- declaring your layout xml etc. -->
</frontend>
<global>
<!-- declaring your block classes etc. -->
<models>
<company_extension>
<class>Company_Extension_Model</class>
</company_extension>
</models>
</global>
</config>
app / etc / modules / Company_Extension.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Company_Extension>
<active>true</active>
<codePool>local</codePool>
</Company_Extension>
</modules>
</config>