Jake Vanderwerf
2026-02-17 a24a06002081ad71a78ffeff9072725ba39cf121
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']);
         }
      }