Re-adds the 'MetaTitle' field for SilverStripe 4
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
This module requires SilverStripe Framework & CMS version 4 and up:
For a SilverStripe 3 compatible version, please use the 1.x line of releases (with composer, require version
Installation with Composer is preferred, but not required. Both methods of installation require a
$ composer require kinglozzer/metatitle:^2.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 “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'
title_format string is rendered as a template, so you can use globally available variables like
$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)