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/registrar/config/seo/Schema.php | 51 +++++++++------------------------------------------
1 files changed, 9 insertions(+), 42 deletions(-)
diff --git a/inc/registrar/config/seo/Schema.php b/inc/registrar/config/seo/Schema.php
index 9fc1394..86401cc 100644
--- a/inc/registrar/config/seo/Schema.php
+++ b/inc/registrar/config/seo/Schema.php
@@ -93,49 +93,8 @@
add_action('wp_head', [$this, 'outputSchema'], 1);
add_filter('the_seo_framework_schema_graph_data', [$this, 'filterTSFSchema'], 10, 2);
add_filter('the_seo_framework_title_from_custom_field', [$this, 'filterTSFOGTitle'], 10, 2);
-
- $this->maybeExcludeSingles();
}
- protected function maybeExcludeSingles(): void
- {
- $exclude = $this->cache->remember(
- 'excludeSingles',
- function () {
- $exclude = [];
- $registrar = Registrar::getInstance($this->slug);
- if ($registrar && $registrar->hasFeature('hide_single')) {
- $exclude = $this->excludeSingle();
- }
- if ($registrar && $registrar->hasFeature('is_timeline')) {
- $exclude = array_merge($exclude, $this->excludeTimeline());
- }
- return $exclude;
- }
- );
- if (!empty($exclude)) {
- add_filter('the_seo_framework_sitemap_exclude_ids', $exclude);
- }
- }
- protected function excludeSingle():array
- {
- return get_posts([
- 'post_type' => jvbCheckBase($this->slug),
- 'posts_per_page'=> -1,
- 'fields' => 'ids',
- 'post_status' => 'publish',
- ]);
- }
- protected function excludeTimeline():array
- {
- return get_posts([
- 'post_type' => jvbCheckBase($this->slug),
- 'posts_per_page'=> -1,
- 'fields' => 'ids',
- 'post_status' => 'publish',
- 'post_parent__not_in' => [0], // Only get posts with a parent
- ]);
- }
public function filterTSFSchema(array $graph, ?array $args):array
{
$based = jvbCheckBase($this->slug);
@@ -277,7 +236,7 @@
$class->setIsPartOf(get_home_url().'/#website');
$itemList = new render\Thing\Intangible\ItemList\ItemList();
$items = new WP_Query([
- 'post_type' => jvbCheckBase($this->slug),
+ 'post_type' => $registrar->getBased(),
'posts_per_page'=> 25,
'post_status' => 'publish',
'fields' => 'ids'
@@ -317,6 +276,13 @@
$cached = $this->referenceCache->remember(
$ID,
function () use ($ID, $type) {
+
+ $postType = get_post_type($ID);
+ $function = BASE.'build_singular_'.jvbNoBase($postType).'_schema_reference';
+
+ if (function_exists($function)) {
+ return $function($ID);
+ }
switch ($type) {
case 'post':
$meta = Meta::forPost($ID);
@@ -480,6 +446,7 @@
'type' => 'JVBase\inc\managers\SEO\render\Thing\CreativeWork\Comment\Answer',
'text' => wp_strip_all_tags(str_replace("\n", '', $meta->get('post_content'))),
],
+ 'answerCount' => 1,
];
$question = SchemaHelper::classFromConfig($question);
$page->setMainEntity($question);
--
Gitblit v1.10.0