kreativan
10/7/2019 - 10:16 AM

SeoMaestro

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]);
});