From 3baf3d2545ba6ece6b74a64c0def59bd0774cf54 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 10 Jun 2026 16:34:12 +0000
Subject: [PATCH] =Laid the groundwork for an improved DashboardManager.php setup. Have to put it aside so I can get the dang Northeh done though.

---
 inc/managers/SEO/render/SchemaOutput.php |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/inc/managers/SEO/render/SchemaOutput.php b/inc/managers/SEO/render/SchemaOutput.php
index a18a09f..25ac320 100644
--- a/inc/managers/SEO/render/SchemaOutput.php
+++ b/inc/managers/SEO/render/SchemaOutput.php
@@ -23,7 +23,7 @@
 	{
 		$schema = [];
 
-
+		$registrar = false;
 		if (is_front_page()) {
 			$schema[] = $this->buildWebsiteSchema(true);
 			$test = $this->buildOrganizationSchema();
@@ -34,7 +34,11 @@
 		if (is_singular($this->types)) {
 			$type = get_post_type();
 			$registrar = Registrar::getInstance($type);
-			if ($registrar) {
+
+			$function = BASE.'build_singular_'.jvbNoBase($type).'_schema';
+			if (function_exists($function)) {
+				$schema = $function(get_the_ID());
+			} else if ($registrar) {
 				$seo = $registrar->getSEO();
 				$schema[] = $seo->schema()->outputSingularSchema();
 			}
@@ -54,13 +58,13 @@
 			$registrar = Registrar::getInstance($type);
 			if ($registrar ) {
 				$seo = $registrar->getSEO();
-				error_log('SEO: '.print_r($seo->schema(), true));
+//				error_log('SEO: '.print_r($seo->schema(), true));
 				$schema[] = $seo->schema()->outputArchiveSchema();
 			}
 		}
 		$isContent = array_values(array_filter(array_map(function($item) {
 			return intval(get_option(BASE.$item.'_archive', false));
-		},Registrar::getFeatured('is_content', 'term'))));
+		},Registrar::withFeature('is_content', 'term'))));
 
 		if (!empty($isContent) && is_page($isContent)){
 			$type = get_post_meta(get_the_id(), BASE.'for_type', true);
@@ -74,6 +78,10 @@
 
 		}
 
+		if ($registrar && !empty($registrar->getSEO()->schema()->extra())) {
+			$schema = array_merge($schema, $registrar->getSEO()->schema()->extra());
+		}
+
 
 
 		$breadcrumbs = $this->buildBreadcrumbs();
@@ -103,6 +111,7 @@
 				'@graph'		=> $schema
 			];
 		}
+
 		return $schema;
 	}
 
@@ -132,7 +141,7 @@
 		}
 //		$encoded =  wp_json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);
 //		$encoded =  wp_json_encode($schema, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT, 1024);
-		$encoded = wp_json_encode($schema, JSON_UNESCAPED_SLASHES, 512);
+		$encoded = wp_json_encode($schema, JSON_UNESCAPED_SLASHES, 1024);
 		if ($encoded === false) {
 			error_log('wp_json_encode failed: ' . json_last_error_msg());
 			return;

--
Gitblit v1.10.0