From a24a06002081ad71a78ffeff9072725ba39cf121 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 17 Feb 2026 20:05:31 +0000
Subject: [PATCH] =minor changes, particularly around the JVB_CHILD_URL pattern

---
 inc/managers/SEO/SchemaOutputManager.php |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/inc/managers/SEO/SchemaOutputManager.php b/inc/managers/SEO/SchemaOutputManager.php
index 649b6b2..9c4a545 100644
--- a/inc/managers/SEO/SchemaOutputManager.php
+++ b/inc/managers/SEO/SchemaOutputManager.php
@@ -121,7 +121,6 @@
 	public function filterTitle(string $title, ?array $args): string
 	{
 		if ($args !== null) {
-			// Not in the loop (admin, etc.)
 			return $title;
 		}
 
@@ -132,14 +131,22 @@
 
 		$metaConfig = $this->config->meta();
 
-		if (empty($metaConfig['title'])) {
+		if (empty($metaConfig['metaTitle'])) {
 			return $title;
 		}
 
 		$resolver = $this->getResolver();
-		$customTitle = $resolver->resolve($metaConfig['title']);
+		$customTitle = $resolver->resolve($metaConfig['metaTitle']);
 
-		return $customTitle ?: $title;
+		if (!$customTitle) {
+			return $title;
+		}
+
+		// Strip trailing site name — TSF adds its own branding
+		$siteName = get_bloginfo('name');
+		$customTitle = preg_replace('/\s*[|\-–—]\s*' . preg_quote($siteName, '/') . '\s*$/i', '', $customTitle);
+
+		return $customTitle;
 	}
 
 	/**
@@ -158,12 +165,12 @@
 
 		$metaConfig = $this->config->meta();
 
-		if (empty($metaConfig['description'])) {
+		if (empty($metaConfig['metaDescription'])) {
 			return $description;
 		}
 
 		$resolver = $this->getResolver();
-		$customDescription = $resolver->resolve($metaConfig['description']);
+		$customDescription = $resolver->resolve($metaConfig['metaDescription']);
 
 		// Truncate to reasonable length
 		if (strlen($customDescription) > 160) {
@@ -190,16 +197,16 @@
 		$metaConfig = $this->config->meta();
 
 		// Check for custom image
-		if (!empty($metaConfig['image'])) {
+		if (!empty($metaConfig['socialPreviewImage'])) {
 			$resolver = $this->getResolver();
-			$imageUrl = $resolver->resolve($metaConfig['image']);
+			$imageUrl = $resolver->resolve($metaConfig['socialPreviewImage']);
 
 			if ($imageUrl) {
 				$params['og:image'] = $imageUrl;
 
 				// Use twitter-specific image if set, otherwise use main image
-				if (!empty($metaConfig['twitter_image'])) {
-					$twitterImage = $resolver->resolve($metaConfig['twitter_image']);
+				if (!empty($metaConfig['twitterImage'])) {
+					$twitterImage = $resolver->resolve($metaConfig['twitterImage']);
 					$params['twitter:image'] = $twitterImage ?: $imageUrl;
 				} else {
 					$params['twitter:image'] = $imageUrl;
@@ -533,12 +540,12 @@
 			$resolver = $this->getResolver();
 			$metaConfig = $this->config->meta();
 
-			if (!empty($metaConfig['title'])) {
-				$webpage['name'] = $resolver->resolve($metaConfig['title']);
+			if (!empty($metaConfig['metaTitle'])) {
+				$webpage['name'] = $resolver->resolve($metaConfig['metaTitle']);
 			}
 
-			if (!empty($metaConfig['description'])) {
-				$webpage['description'] = $resolver->resolve($metaConfig['description']);
+			if (!empty($metaConfig['metaDescription'])) {
+				$webpage['description'] = $resolver->resolve($metaConfig['metaDescription']);
 			}
 		}
 

--
Gitblit v1.10.0