如何自定义SilverStripe页面的<title>

时间:2015-08-31 07:11:06

标签: silverstripe

&lt; p&gt;如何自定义&lt; code&gt;&lt; title&gt;&lt; / code&gt; SilverStripe页面? &LT; / p为H. &lt; p&gt;现在它&lt; / p&gt; &lt; pre&gt;&lt; code&gt;&lt; title&gt;&lt;%if $ MetaTitle%&gt; $ MetaTitle&lt;%else%&gt; $ Title&lt;%end_if%&gt; &安培; RAQUO; $ SiteConfig.Title&LT; /标题&GT; &LT; /代码&GT;&LT; /预&GT;

2 个答案:

答案 0 :(得分:6)

您当前的网页模板页面<title>标记为:

<title>
    <% if $MetaTitle %>$MetaTitle<% else %>$Title<% end_if %> 
    &raquo; $SiteConfig.Title
</title>

您可以将其更改为使用您想要的任何变量或内容。

您当前的模板代码会检查页面是否已定义$MetaTitle。如果是,它将使用它。否则,它将使用页面$Title

最后一部分将网站标题$SiteConfig.Title添加到最后。可以在“设置”选项卡上的CMS中找到此字段。

{3.1}中的核心SilverStripe代码中删除了MetaTitle变量。如果您想要重新添加此功能,可以通过安装SilverStripe MetaTitle module或自己将变量和输入添加到Page类来实现此目的。

以下是一些将MetaTitle变量添加到Page类的代码:

class Page extends SiteTree {

    private static $db = array(
        'MetaTitle' => 'Varchar(255)'
    );

    public function getCMSFields() {
        $fields = parent::getCMSFields();

        $fields->addFieldToTab(
            'Root.Main',
            TextField::create('MetaTitle')
                ->setRightTitle('Shown at the top of the browser window and used as the "linked text" by search engines.')
                ->addExtraClass('help'),
            'MetaDescription'
        );

        return $fields;
    }
}

该变量将显示在Content字段下每页的CMS中。

答案 1 :(得分:0)

您可以在“标题”字段中设置CMS中的页面标题。

如果您想更改整个网站的标题,请编辑“网站配置”部分中的标题(最多匹配$SiteConfig.Title)。

通常,这些变量只是从CMS填充,因此可以随意使用其他变量进行自定义,或者根据需要在CMS中编辑它们的值。