用Magento覆盖页面标题

时间:2012-02-24 16:30:37

标签: php magento

我四处寻找如何做到这一点,但没有任何工作。

我有一个.phtml文件,想要用它来覆盖当前标题(位于<title></title>标签之间)。

我找到$this->getLayout()->getBlock('head')->setTitle("New Title");想要做的某个地方,但事实并非如此。但是$this->getLayout()->getBlock('head')->getTitle();正确地正确返回当前标题。

任何帮助都会很棒

4 个答案:

答案 0 :(得分:3)

我认为你不能在 .phtml 中做到这一点。我会使用 local.xml 文件并按照this guide

这允许您为不同的页面设置标题,如下所示:

<reference name="head">
    <action method="setForcedTitle"><title>Account Dashboard</title></action>
</reference>

答案 1 :(得分:3)

我认为你不能在.phtml这里轻松解决这个问题

您已将页面图块设置为“向朋友发送电子邮件”,因此请打开您的sendfriend.xml文件并设置以下代码。

 <reference name="head">
        <action method="setTitle" translate="title" module="sendfriend"><title>Email to a Friend</title></action>
    </reference>

它正在运作..

答案 2 :(得分:0)

Magento首先加载head.phtml。 所以我们无法覆盖另一个模板文件中的标题。

我有类似的要求。我的所作所为在下面。

<title>
<?php
/*****************Customized For Title***********************/
        $url = $_SERVER['REQUEST_URI']; //Check With url
        $url = parse_url($url, PHP_URL_PATH);
        $url = explode('/',$url);
        $url_key = $url[2]; //Set The url-key           

        $cateUrl = Mage::getModel('catalog/category')->getCollection ()
        ->addAttributeToSelect ('id')
        ->addAttributeToFilter ('url_key',  $url_key) //load the  category
        ->getFirstItem (); //only 1 result ; 

        $catSel = Mage::getModel('catalog/category')->load($cateUrl->entity_id)->getMetaTitle();            

        //If Page title then Update
        if(!empty($catSel))
                 $this->getLayout()->getBlock('head')->setTitle($catSel);

        /*****************Customized For Title***********************/
        echo $this->getTitle() 
?>
</title>

在我的情况下,我需要检查网址,如果网址有类别的分页标题,则会覆盖它。

答案 3 :(得分:-1)

您可以通过编辑&#34; CMS&#34;中的页面标题来简单地执行此操作。管理面板中的配置。它非常简单,不需要任何编码。