kinglozzer/metatitle

Re-adds the 'MetaTitle' field for SilverStripe 4

Installs: 197 818

Dependents: 11

Suggesters: 2

Security: 0

Stars: 17

Watchers: 5

Forks: 5

Open Issues: 1

Type:silverstripe-vendormodule

3.0.0 2023-02-13 09:19 UTC

This package is auto-updated.

Last update: 2024-03-13 11:29:41 UTC


README

Build Status Latest Stable Version Total Downloads License

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:

cms.png

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 %> &raquo; $SiteConfig.Title</title>
$MetaTags(false)