PHP code example of vaersaagod / seomate
1. Go to this page and download the library: Download vaersaagod/seomate library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
vaersaagod / seomate example snippets
return [
'defaultProfile' => 'standard',
'fieldProfiles' => [
'standard' => [
'title' => ['seoTitle', 'heading', 'title'],
'description' => ['seoDescription', 'summary'],
'image' => ['seoImage', 'mainImage']
]
],
];
return [
'defaultProfile' => 'standard',
'fieldProfiles' => [
'standard' => [
'title' => ['seoTitle', 'heading', 'title'],
'description' => ['seoDescription', 'summary'],
'image' => ['seoImage', 'mainImage']
],
'newsprofile' => [
'title' => ['seoTitle', 'heading', 'title'],
'og:title' => ['ogTitle', 'heading', 'title'],
'description' => ['seoDescription', 'newsExcerpt', 'introText'],
'image' => ['seoImage', 'heroImage', 'newsBlocks.image:image']
'og:image' => ['ogImage', 'heroImage', 'newsBlocks.image:image']
'twitter:image' => ['twitterImage', 'heroImage', 'newsBlocks.image:image']
]
],
'profileMap' => [
'news' => 'newsprofile',
],
];
'profileMap' => [
'section:news' => 'newsprofile', // Will match entries in a section "news"
'categoryGroup:news' => 'newscategoryprofile', // Will match categories in a group "news"
],
'profileMap' => [
'section:news' => 'newsprofile', // Will match entries in a section "news"
'categoryGroup:news' => 'newscategoryprofile', // Will match categories in a group "news"
'pages' => 'pagesprofile',
'entryType:listPage' => 'listpageprofile', // Will match entries with an entry type "listPage"
],
return [
'defaultMeta' => [
'title' => ['globalSeo.seoTitle'],
'description' => ['globalSeo.seoDescription'],
'image' => ['globalSeo.seoImages']
],
'defaultProfile' => 'standard',
'fieldProfiles' => [
'standard' => [
'title' => ['seoTitle', 'heading', 'title'],
'description' => ['seoDescription', 'summary'],
'image' => ['seoImage', 'mainImage']
],
'newsprofile' => [
'title' => ['seoTitle', 'heading', 'title'],
'og:title' => ['ogTitle', 'heading', 'title'],
'description' => ['seoDescription', 'newsExcerpt', 'introText'],
'image' => ['seoImage', 'heroImage', 'newsBlocks.image:image']
'og:image' => ['ogImage', 'heroImage', 'newsBlocks.image:image']
'twitter:image' => ['twitterImage', 'heroImage', 'newsBlocks.image:image']
]
],
'profileMap' => [
'news' => 'newsprofile',
],
];
return [
'defaultMeta' => [
'title' => ['globalSeo.seoTitle'],
'description' => ['globalSeo.seoDescription'],
'image' => ['globalSeo.seoImages']
],
'defaultProfile' => 'standard',
'fieldProfiles' => [
'standard' => [
'title' => ['seoTitle', 'heading', 'title'],
'description' => ['seoDescription', 'summary'],
'image' => ['seoImage', 'mainImage']
],
'newsprofile' => [
'title' => ['seoTitle', 'heading', 'title'],
'og:title' => ['ogTitle', 'heading', 'title'],
'description' => ['seoDescription', 'newsExcerpt', 'introText'],
'image' => ['seoImage', 'heroImage', 'newsBlocks.image:image']
'og:image' => ['ogImage', 'heroImage', 'newsBlocks.image:image']
'twitter:image' => ['twitterImage', 'heroImage', 'newsBlocks.image:image']
]
],
'profileMap' => [
'news' => 'newsprofile',
],
'additionalMeta' => [
'og:type' => 'website',
'twitter:card' => 'summary_large_image',
'fb:profile_id' => '{{ settings.facebookProfileId }}',
'twitter:site' => '@{{ settings.twitterHandle }}',
'twitter:author' => '@{{ settings.twitterHandle }}',
'twitter:creator' => '@{{ settings.twitterHandle }}',
'og:see_also' => function ($context) {
$someLinks = [];
$matrixBlocks = $context['globalSeo']?->someLinks?->all();
if (!empty($matrixBlocks)) {
foreach ($matrixBlocks as $matrixBlock) {
$someLinks[] = $matrixBlock->someLinkUrl ?? '';
}
}
return $someLinks;
},
],
];
'sitemapEnabled' => true,
'sitemapLimit' => 100,
'sitemapConfig' => [
'elements' => [
'news' => ['changefreq' => 'weekly', 'priority' => 1],
'projects' => ['changefreq' => 'weekly', 'priority' => 0.5],
],
],
'sitemapEnabled' => true,
'sitemapLimit' => 100,
'sitemapConfig' => [
'elements' => [
'news' => ['changefreq' => 'weekly', 'priority' => 1],
'projects' => ['changefreq' => 'weekly', 'priority' => 0.5],
'frontpages' => [
'elementType' => \craft\elements\Entry::class,
'criteria' => ['section' => ['homepage', 'newsFrontpage', 'projectsFrontpage']],
'params' => ['changefreq' => 'daily', 'priority' => 1],
],
'newscategories' => [
'elementType' => \craft\elements\Category::class,
'criteria' => ['group' => 'newsCategories'],
'params' => ['changefreq' => 'weekly', 'priority' => 0.2],
],
'semisecret' => [
'elementType' => \craft\elements\Entry::class,
'criteria' => ['section' => 'semiSecret', 'notThatSecret' => true],
'params' => ['changefreq' => 'daily', 'priority' => 0.5],
],
],
'custom' => [
'/cookies' => ['changefreq' => 'weekly', 'priority' => 1],
'/terms-and-conditions' => ['changefreq' => 'weekly', 'priority' => 1],
],
],
'siteName' => 'My site'
// or
'siteName' => [
'default' => 'My site',
'other' => 'Another site',
]
'sitenameTitleProperties' => ['title', 'og:title', 'twitter:title']
'outputAlternate' => static fn($element, $alternateElement) => $element->language !== $alternateElement->language,
'defaultProfile' => 'default',
'fieldProfiles' => [
'default' => [
'title' => ['seoTitle', 'heading', 'title'],
'description' => ['seoDescription', 'summary'],
'image' => ['seoImage', 'mainImage']
],
'products' => [
'title' => ['seoTitle', 'heading', 'title'],
'description' => ['seoDescription', 'productDescription', 'summary'],
'image' => ['seoImage', 'mainImage', 'heroMedia:media.image']
],
'landingPages' => [
'title' => ['seoTitle', 'heading', 'title'],
'description' => ['seoDescription'],
'image' => ['seoImage', 'heroArea:video.image', 'heroArea:singleImage.image', 'heroArea:twoImages.images', 'heroArea:slideshow.images']
],
],
'fieldProfiles' => [
'default' => [
'title' => ['seoTitle', static function ($element) { return "$element->title - ($element->productCode)"; }],
],
]
'fieldProfiles' => [
'default' => [
'image' => [static function ($element) { return $element->seoImage->one() ?? null; }],
],
]
'fieldProfiles' => [
'default' => [
'title' => ['seoTitle', '{title} - ({productCode})', '{{ object.title }} - ({{ object.productCode }})'],
],
]
'defaultMeta' => [
'default' => [
'image' => ['{seoImage.one().id}'],
],
]
'profileMap' => [
'news' => 'newsProfile',
'section:products' => 'productsProfile',
'section:frontpage,section:campaigns' => 'landingPagesProfile',
'entryType:listPage' => 'listPageProfile',
'categoryGroup:newsCategories' => 'newsCategoriesProfile',
],
'defaultMeta' => [
'title' => ['globalSeo.seoTitle'],
'description' => ['globalSeo.seoDescription', 'settings.companyInfo'],
'image' => ['globalSeo.seoImages']
],
'defaultMeta' => [
'title' => [static function ($context) { return $context['siteName'] . ' is awesome!'; }],
]
'defaultMeta' => [
'image' => [static function ($context) { return $context['defaultSeoImage']->one() ?? null; }],
]
'defaultMeta' => [
'title' => ['{siteName} is awesome!', '{{ object.siteName }} is awesome!'],
]
'defaultMeta' => [
'image' => ['{defaultSeoImage.one().id}'],
]
'additionalMeta' => [
'og:type' => 'website',
'twitter:card' => 'summary_large_image',
'fb:profile_id' => '{{ settings.facebookProfileId }}',
'twitter:site' => '@{{ settings.twitterHandle }}',
'twitter:author' => '@{{ settings.twitterHandle }}',
'twitter:creator' => '@{{ settings.twitterHandle }}',
'og:see_also' => function ($context) {
$someLinks = [];
$matrixBlocks = $context['globalSeo']->someLinks->all() ?? null;
if ($matrixBlocks && count($matrixBlocks) > 0) {
foreach ($matrixBlocks as $matrixBlock) {
$someLinks[] = $matrixBlock->someLinkUrl ?? '';
}
}
return $someLinks;
},
],
[
'title,og:title,twitter:title' => [
'type' => 'text',
'minLength' => 10,
'maxLength' => 60
],
'description,og:description,twitter:description' => [
'type' => 'text',
'minLength' => 50,
'maxLength' => 300
],
'image,og:image,twitter:image' => [
'type' => 'image'
],
]
[
'image' => [
'width' => 1200,
'height' => 675,
'format' => 'jpg',
],
'og:image' => [
'width' => 1200,
'height' => 630,
'format' => 'jpg',
],
'twitter:image' => [
'width' => 1200,
'height' => 600,
'format' => 'jpg',
],
]
'imageTransformMap' => [
'image' => [
'width' => 1200,
'height' => 675,
'format' => 'jpg'
],
'og:image' => [
'width' => 1200,
'height' => 630,
'format' => 'jpg',
'effects' => [
'sharpen' => true,
'modulate' => [100, 0, 100],
'colorBlend' => ['rgb(0, 0, 255)', 0.5]
]
],
'twitter:image' => [
'width' => 1200,
'height' => 600,
'format' => 'jpg',
'effects' => [
'sharpen' => true,
'modulate' => [100, 0, 100],
'colorBlend' => ['rgb(0, 0, 255)', 0.5]
]
],
],
[
'og:title' => 'title',
'og:description' => 'description',
'og:image' => 'image',
'twitter:title' => 'title',
'twitter:description' => 'description',
'twitter:image' => 'image',
]
[
'default' => '<meta name="{{ key }}" content="{{ value }}">',
'title' => '<title>{{ value }}</title>',
'/^og:/,/^fb:/' => '<meta property="{{ key }}" content="{{ value }}">',
]
'sitemapConfig' => [
'elements' => [
'projects' => ['changefreq' => 'weekly', 'priority' => 0.5],
'news' => ['changefreq' => 'weekly', 'priority' => 0.5],
'indexpages' => [
'elementType' => \craft\elements\Entry::class,
'criteria' => ['section' => ['frontpage', 'newsListPage', 'membersListPage', 'aboutPage']],
'params' => ['changefreq' => 'daily', 'priority' => 0.5],
],
'newscategories' => [
'elementType' => \craft\elements\Category::class,
'criteria' => ['group' => 'newsCategories'],
'params' => ['changefreq' => 'weekly', 'priority' => 0.2],
],
],
'custom' => [
'/custom-1' => ['changefreq' => 'weekly', 'priority' => 1],
'/custom-2' => ['changefreq' => 'weekly', 'priority' => 1],
],
'additionalSitemaps' => [
'/sitemap-from-other-plugin.xml',
'/manually-generated-sitemap.xml'
]
],
'sitemapConfig' => [
/* ... */
'custom' => [
'*' => [
'/custom-global-1' => ['changefreq' => 'weekly', 'priority' => 1],
'/custom-global-2' => ['changefreq' => 'weekly', 'priority' => 1],
],
'english' => [
'/custom-english' => ['changefreq' => 'weekly', 'priority' => 1],
],
'norwegian' => [
'/custom-norwegian' => ['changefreq' => 'weekly', 'priority' => 1],
]
],
'additionalSitemaps' => [
'*' => [
'/sitemap-from-other-plugin.xml',
'/sitemap-from-another-plugin.xml',
],
'english' => [
'/manually-generated-english-sitemap.xml',
],
'norwegian' => [
'/manually-generated-norwegian-sitemap.xml',
]
]
],
'sitemapSubmitUrlPatterns' => [
'http://www.google.com/webmasters/sitemaps/ping?sitemap=',
'http://www.bing.com/webmaster/ping.aspx?siteMap=',
];