From c45b0798568d2aa6b388ecbd9bffa5de7e9a34ae Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 10 Feb 2026 02:20:38 +0000
Subject: [PATCH] =minor fixes to schema system
---
inc/managers/SEO/SchemaBuilder.php | 47 +++++++++++++++++++++++++++++++++--------------
1 files changed, 33 insertions(+), 14 deletions(-)
diff --git a/inc/managers/SEO/SchemaBuilder.php b/inc/managers/SEO/SchemaBuilder.php
index 12bf00f..9ed0174 100644
--- a/inc/managers/SEO/SchemaBuilder.php
+++ b/inc/managers/SEO/SchemaBuilder.php
@@ -47,10 +47,10 @@
private array $metaFields = ['metaTitle', 'metaDescription', 'socialPreviewImage', 'twitterImage'];
private array $defaultMetaValues = [
- 'title' => '{{post_title}} | {{site_name}}',
- 'description' => '{{post_excerpt}}',
- 'image' => '{{featured_image}}',
- 'twitter_image' => ''
+ 'metaTitle' => '{{post_title}}',
+ 'metaDescription' => '{{post_excerpt}}',
+ 'socialPreviewImage' => '{{featured_image}}',
+ 'twitterImage' => ''
];
public static function getInstance(): self
@@ -124,17 +124,10 @@
*/
public function getFieldDefinition(string $fieldName): ?array
{
- $definitions = $this->getFieldDefinitions();
+ $definitions = apply_filters(BASE . 'schema_field_definitions', $this->fieldDefinitions);
return $definitions[$fieldName] ?? null;
}
- /**
- * Get all field definitions
- */
- public function getFieldDefinitions(): array
- {
- return apply_filters(BASE . 'schema_field_definitions', $this->fieldDefinitions);
- }
/**
* Get type definition
@@ -192,7 +185,7 @@
}
/**
- * Get MetaManager configuration for a schema type
+ * Get Meta configuration for a schema type
* This creates the form fields for the selected @type
*/
public function getMetaConfigForType(string $type): array
@@ -407,7 +400,7 @@
**************************************************************/
$this->field('about')
->type('reference')
- ->label('About (Service/Topic)')
+ ->label('About')
->transformer('reference');
$this->field('temporalCoverage')
@@ -1494,6 +1487,32 @@
'answer'
]);
+ $this->type('Place')
+ ->label('Place')
+ ->group('general')
+ ->fields([
+ 'type',
+ 'name',
+ 'description',
+ 'url',
+ 'image',
+ 'geo',
+ 'address',
+ 'sameAs',
+ ]);
+
+ $this->type('City')
+ ->label('City')
+ ->group('general')
+ ->extends('Place')
+ ->addFields([
+ 'containedInPlace',
+ ]);
+ $this->field('containedInPlace')
+ ->type('reference')
+ ->label('Contained In')
+ ->description('Parent place (province, country)')
+ ->transformer('reference');
/**************************************************************
* ORGANIZATION & BUSINESS
**************************************************************/
--
Gitblit v1.10.0