Better metatags for your SilverStripe Projects.
The module will add a $MetaImage
to each page and a fallback $MetaImage
to the $SiteConfig
that will be used if no image is defined on a particular page (to avoid this behavior do not fill in the $SiteConfig.MetaImage
in the CMS). It will automatically generate OpenGraph and Twitter meta tags based on pages $MetaDescription
.
Install with composer:
composer require arillo/silverstripe-metatags
or clone the repo:
git clone git@github.com:arillo/silverstripe-metatags.git
Configure the extension:
MetaTagsExtension:
titles_by_pagetype:
Default: $Title / $SiteConfig.Title # Define the default <title> tag pattern. (Defaults to $Title)
HomePage: $Title # Exception for the HomePage page-type
ProductsPage: $Item.Title # Pattern for a DataObject
Include the template in your <head>
:
<head>
$MetaTagsX
</head>
Be sure not to include $MetaTags
in your <head>
, the module includes it in the default template. To customize the rendering of the metatags copy the template MetaTagsX.ss
to your project theme.
Why the X? Because $MetaTags
was taken by the SilverStripe default metatags =).
Move the MetaDescription
field inside the Meta Tab:
<?php
class Page extends SiteTree
{
public function getCMSFields() {
$fields = parent::getCMSFields();
$medaDesc = $fields->dataFieldByName('MetaDescription');
$fields->removeByName('Metadata');
$fields->removeByName('MetaDescription');
$fields->addFieldToTab('Root.Meta', $medaDesc);
return $fields;
}
}