kinglozzer / metatitle
Re-adds the 'MetaTitle' field for SilverStripe 4
Installs: 210 920
Dependents: 12
Suggesters: 3
Security: 0
Stars: 17
Watchers: 5
Forks: 5
Open Issues: 1
Type:silverstripe-vendormodule
Requires
- php: ^8.1
- silverstripe/cms: ^5
Requires (Dev)
- phpunit/phpunit: ^9.5
README
Re-adds the “Meta Title” field that was removed in SilverStripe 3.1.
By: Loz Calver - Bigfork Ltd.
Contributing:
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.
Requirements:
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:
Installation with Composer is preferred, but not required. Both methods of installation require a dev/build
.
Composer
$ composer require kinglozzer/metatitle:^3.0
ZIP Download
Simply download the zip version of this repository, extract it, and copy the directory into your SilverStripe installation.
Usage:
CMS
Content authors can edit the meta title via the new “Meta Title” field that’s added to the “Metadata” toggle fields:
Templates
Automatically including the meta title
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).
Manually including the meta title
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)