ProcessWire Seo Maestro Stuff
<?php
// Check if value is inhirit
if($page->seo && $page->seo->meta_title != "inherit") {
return $page->seo->meta_title;
}
//
// Change seo values via hook
//
$wire->addHookAfter('SeoMaestro::renderSeoDataValue', function (HookEvent $event) {
$group = $event->arguments(0);
$name = $event->arguments(1);
$value = $event->arguments(2);
$page = wire("page");
if ($group === 'meta' && $name === 'title') {
$event->return = "New title";
}
if ($group === 'meta' && $name === 'description') {
$event->return = "New desc";
}
if($group == "opengraph" && $name === 'title') {
$event->return = "New open graph title";
}
});
/**
* Remove
* <meta name="generator" content="ProcessWire">
* <link rel="alternate" href="#" hreflang="x-default">
* <link rel="alternate" href="#" hreflang="en">
*/
$wire->addHookAfter('SeoMaestro::renderMetatags', function (HookEvent $event) {
$tags = $event->arguments(0);
$group = $event->arguments(1);
if ($group === null) {
unset($tags['meta_generator']);
unset($tags['link_rel_default']);
unset($tags['link_rel_en']);
$event->return = $tags;
}
});
//
// Remove the description and canonical URL.
//
$wire->addHookAfter('SeoMaestro::renderMetatags', function (HookEvent $event) {
$tags = $event->arguments(0);
$group = $event->arguments(1);
if ($group === 'meta') {
unset($tags['description']);
unset($tags['canonicalUrl']);
$event->return = $tags;
}
});
//
// Replace canonical and og:urk
//
$wire->addHookAfter('SeoMaestro::renderMetatags', function (HookEvent $event) {
$tags = $event->arguments(0);
$group = $event->arguments(1);
$this_url = wire("page")->httpUrl . getCity()->name . '/';
$canonical = "<link rel='canonical' href='$this_url' />";
$og_url = "<meta property='og:url' content='$this_url' />";
if($group == "opengraph") {
$tags['url'] = $og_url;
$event->return = $tags;
}
if ($group === 'meta') {
$tags['canonicalUrl'] = $canonical;
$event->return = $tags;
}
});
<?php namespace ProcessWire;
// generate sitemap via server cron
// first bootstrap processwire
include("index.php");
// Generate Sitemap
// edfine sitemap path
$sitemap_path = "sitemap.xml";
// use SeoMaestro to generate sitemap
$wire->modules->get('SeoMaestro')->getSitemapManager()->generate($sitemap_path);
<?php
//
// Force exclude pages from sitemap
//
$this->addHookAfter('SeoMaestro::sitemapAlwaysExclude', function (HookEvent $event) {
$pageArray = $event->arguments(0);
$maaapi = $this->pages->get("template=maapi");
foreach($maaapi->children() as $p) $pageArray->add($p);
});
//
// Add item to sitemap
//
use SeoMaestro\SitemapItem;
$item = (new SitemapItem())
->set('loc', '/en/my-custom-url')
->set('priority', 'custom-priority')
->set('changefreq', 'changefreq-custom')
->addAlternate('de', '/de/my-custom-url-de');
$this->addHookAfter('SeoMaestro::sitemapItems', function (HookEvent $event) use ($item) {
$event->return = array_merge($event->return, [$item]);
});