From c19264ac916707096fe294d996a1b7fb85206b34 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 08 Mar 2026 19:55:31 +0000
Subject: [PATCH] =Furthering along the complete refactor. Added some basic setup for is_content taxonomies, including a page for an archive of the terms.
---
inc/managers/SEO/SchemaBuilder.php | 64 ++++++++++++++++++++++---------
1 files changed, 45 insertions(+), 19 deletions(-)
diff --git a/inc/managers/SEO/SchemaBuilder.php b/inc/managers/SEO/SchemaBuilder.php
index 7f8785c..d4a2ee6 100644
--- a/inc/managers/SEO/SchemaBuilder.php
+++ b/inc/managers/SEO/SchemaBuilder.php
@@ -1,6 +1,8 @@
<?php
namespace JVBase\managers\SEO;
+use JVBase\registrar\Registrar;
+
if (!defined('ABSPATH')) {
exit;
}
@@ -47,10 +49,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 +126,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
@@ -250,9 +245,11 @@
{
$options = ['' => '-- Select Post Type --'];
- if (defined('JVB_CONTENT')) {
- foreach (JVB_CONTENT as $key => $config) {
- $options[jvbCheckBase($key)] = $config['plural'] ?? $config['singular'] ?? ucwords($key);
+ $content = Registrar::getRegistered('post');
+ if (!empty($content)){
+ foreach ($content as $c) {
+ $registrar = Registrar::getInstance($c);
+ $options[jvbCheckBase($c)] = $registrar->getPlural();
}
}
@@ -266,9 +263,12 @@
{
$options = ['' => '-- Select Taxonomy --'];
- if (defined('JVB_TAXONOMY')) {
- foreach (JVB_TAXONOMY as $key => $config) {
- $options[jvbCheckBase($key)] = $config['plural'] ?? $config['singular'] ?? ucwords($key);
+
+ $tax = Registrar::getRegistered('term');
+ if (!empty($tax)){
+ foreach ($tax as $c) {
+ $registrar = Registrar::getInstance($c);
+ $options[jvbCheckBase($c)] = $registrar->getPlural();
}
}
@@ -407,7 +407,7 @@
**************************************************************/
$this->field('about')
->type('reference')
- ->label('About (Service/Topic)')
+ ->label('About')
->transformer('reference');
$this->field('temporalCoverage')
@@ -1494,6 +1494,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