From 4f944e6fe547f14ab76b2e4fd55248fac40a9b07 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 09 Feb 2026 01:05:24 +0000
Subject: [PATCH] =Schema registry patch

---
 inc/managers/SEO/schemas/_setup.php                 |   16 ++++++++--------
 inc/managers/SEO/schemas/SchemaResolverRegistry.php |   24 +++++++++++++++++++-----
 inc/managers/SEO/SchemaOutputManager.php            |    1 +
 3 files changed, 28 insertions(+), 13 deletions(-)

diff --git a/inc/managers/SEO/SchemaOutputManager.php b/inc/managers/SEO/SchemaOutputManager.php
index d53da29..649b6b2 100644
--- a/inc/managers/SEO/SchemaOutputManager.php
+++ b/inc/managers/SEO/SchemaOutputManager.php
@@ -2,6 +2,7 @@
 namespace JVBase\managers\SEO;
 
 use JVBase\managers\Cache;
+use JVBase\managers\SEO\schemas\SchemaResolverRegistry;
 use JVBase\meta\Meta;
 use JVBase\managers\SEO\schemas\SchemaDefinition;
 use WP_Term;
diff --git a/inc/managers/SEO/schemas/SchemaResolverRegistry.php b/inc/managers/SEO/schemas/SchemaResolverRegistry.php
index 797d425..fc1dfc9 100644
--- a/inc/managers/SEO/schemas/SchemaResolverRegistry.php
+++ b/inc/managers/SEO/schemas/SchemaResolverRegistry.php
@@ -1,9 +1,12 @@
 <?php
-namespace JVBase\managers\SEO;
+namespace JVBase\managers\SEO\schemas;
 
-use JVBase\managers\SEO\schemas\SchemaResolverInterface;
+use JVBase\managers\SEO\SchemaBuilder;
 use JVBase\managers\SEO\schemas\resolvers\BaseResolver;
-
+use JVBase\managers\SEO\schemas\resolvers\CollectionPageResolver;
+use JVBase\managers\SEO\schemas\resolvers\LocalBusinessResolver;
+use JVBase\managers\SEO\schemas\resolvers\PersonResolver;
+use JVBase\managers\SEO\schemas\resolvers\VisualArtworkResolver;
 /**
  * Registry mapping schema types to their resolvers.
  * Like Queue's TypeRegistry maps operation types to executors.
@@ -54,7 +57,18 @@
 
 	private function registerDefaults(): void
 	{
-		// Register type-specific resolvers
-		// Extensible via the action hook above
+		$localBusiness = new LocalBusinessResolver();
+		$this->register('LocalBusiness', $localBusiness);
+
+		$visualArtwork = new VisualArtworkResolver();
+		$this->register('VisualArtwork', $visualArtwork);
+		$this->register('CreativeWork', new BaseResolver());
+
+		$this->register('Person', new PersonResolver());
+
+		$collection = new CollectionPageResolver();
+		$this->register('CollectionPage', $collection);
+		$this->register('FAQPage', $collection);
+		$this->register('DefinedTermSet', $collection);
 	}
 }
diff --git a/inc/managers/SEO/schemas/_setup.php b/inc/managers/SEO/schemas/_setup.php
index 6f4e51c..1c21b6b 100644
--- a/inc/managers/SEO/schemas/_setup.php
+++ b/inc/managers/SEO/schemas/_setup.php
@@ -13,14 +13,14 @@
 }
 
 // Core
-require(JVB_DIR . '/inc/managers/SEO/schemas/SchemaDefinition.php');
-require(JVB_DIR . '/inc/managers/SEO/schemas/SchemaResolverInterface.php');
+require_once JVB_DIR . '/inc/managers/SEO/schemas/SchemaDefinition.php';
+require_once JVB_DIR . '/inc/managers/SEO/schemas/SchemaResolverInterface.php';
 
 // Resolvers
-require(JVB_DIR . '/inc/managers/SEO/schemas/resolvers/BaseResolver.php');
-require(JVB_DIR . '/inc/managers/SEO/schemas/resolvers/LocalBusinessResolver.php');
-require(JVB_DIR . '/inc/managers/SEO/schemas/resolvers/VisualArtworkResolver.php');
-require(JVB_DIR . '/inc/managers/SEO/schemas/resolvers/PersonResolver.php');
-require(JVB_DIR . '/inc/managers/SEO/schemas/resolvers/CollectionPageResolver.php');
+require_once JVB_DIR . '/inc/managers/SEO/schemas/resolvers/BaseResolver.php';
+require_once JVB_DIR . '/inc/managers/SEO/schemas/resolvers/LocalBusinessResolver.php';
+require_once JVB_DIR . '/inc/managers/SEO/schemas/resolvers/VisualArtworkResolver.php';
+require_once JVB_DIR . '/inc/managers/SEO/schemas/resolvers/PersonResolver.php';
+require_once JVB_DIR . '/inc/managers/SEO/schemas/resolvers/CollectionPageResolver.php';
 
-require(JVB_DIR . '/inc/managers/SEO/schemas/_setup.php');
+require_once JVB_DIR . '/inc/managers/SEO/schemas/_setup.php';

--
Gitblit v1.10.0