Re-adds the “Meta Title” field that was removed in SilverStripe 3.1.
By: Loz Calver - Bigfork Ltd.
Translations were pulled from SilverStripe CMS v3.0.2 (before the SiteTree.METATITLE
entity was removed). Pull requests are welcome for improving those translations and adding SiteTree.METATITLEHELP
translations.
This module requires SilverStripe Framework & CMS version 5 and up:
"silverstripe/cms": "^5"
"silverstripe/framework": "^5"
For a SilverStripe 3 compatible version, please use the 1.x line of releases (with composer, require version ^1.0
).
Installation with Composer is preferred, but not required. Both methods of installation require a dev/build
.
$ composer require kinglozzer/metatitle:^3.0
Simply download the zip version of this repository, extract it, and copy the directory into your SilverStripe installation.
Content authors can edit the meta title via the new “Meta Title” field that’s added to the “Metadata” toggle fields:
The simplest way to ensure that the meta title is included is to call $MetaTags
in the <head>
of your template. This will include the meta title (falling back to page title if meta title is not set) and the site name in the format: Meta title » Your Site Name
.
The format can be customised by changing the Kinglozzer\SilverStripeMetaTitle\MetaTitleExtension.title_format
config setting. For example, to change the » to a hyphen:
Kinglozzer\SilverStripeMetaTitle\MetaTitleExtension:
title_format: '$MetaTitle - $SiteConfig.Title'
The title_format
string is rendered as a template, so you can use globally available variables like $SiteConfig
. $MetaTitle
is dynamically populated with the meta title (falling back to page title if meta title is not set).
You can access the meta title directly with the $MetaTitle
variable, should you wish to control how the meta title is output directly in your template. You will need to call $MetaTags(false)
to ensure that SilverStripe doesn’t automatically output the <title>
tag too:
<title><% if $MetaTitle %>$MetaTitle<% else %>$Title<% end_if %> » $SiteConfig.Title</title>
$MetaTags(false)