From 2127b1bdd73ecd2423e443992da4b442f5a3c1a3 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 04 Feb 2026 21:19:25 +0000
Subject: [PATCH] =Major overhaul of MetaManager.php -> Meta.php and RestRouteManager.php -> Rest.php. Seems to work for JakeVan
---
inc/managers/DirectoryManager.php | 32 +++++++++++++++++++++++++++++---
1 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/inc/managers/DirectoryManager.php b/inc/managers/DirectoryManager.php
index 541ca2c..dc591ef 100644
--- a/inc/managers/DirectoryManager.php
+++ b/inc/managers/DirectoryManager.php
@@ -38,7 +38,6 @@
}
add_action('init', [$this, 'registerDirectories']);
- jvb_register_do_once('directories_registered', [$this, 'activate']);
add_action('render_block', [$this, 'renderBlock'], 99999, 3);
}
@@ -66,7 +65,7 @@
'public' => true,
'menu_icon' => jvbCSSIcon('list-dashes'),
'publicly_queryable' => true,
- 'show_in_menu' => false,
+ 'show_in_menu' => true,
'show_in_admin_bar' => false,
'has_archive' => true,
'hierarchical' => true,
@@ -227,6 +226,33 @@
}
}
+ protected function buildDirectoryList():array
+ {
+ $saved = get_option(BASE.'directory_list', []);
+ if (empty($saved)) {
+ $all = new WP_Query([
+ 'post_type' => BASE.'directory',
+ 'post_status' => 'publish',
+ 'posts_per_page' => -1,
+ ]);
+ foreach($all->posts as $post) {
+ $saved[$post->post_name] = [
+ 'slug' => $post->post_name,
+ 'title' => $post->post_title,
+ 'ID' => $post->ID,
+ 'url' => get_the_permalink($post->ID),
+ 'page' => $post->post_title,
+ 'description' => $this->getConfigFromType($post->post_name)['description']??'',
+ 'type' => get_post_meta($post->ID, self::$type,true),
+ 'extra' => $this->getConfigFromType($post->post_name)['directory_extra']??[],
+ ];
+ }
+ update_option(BASE.'directory_list', $saved);
+ wp_reset_postdata();
+ }
+ return $saved;
+ }
+
public function getDirectoryPageIDs():array
{
if (empty($this->directoryPageIDs)) {
@@ -237,7 +263,7 @@
public function getDirectoryList():array
{
if (empty($this->directoryList)) {
- $this->directoryList = get_option(BASE.'directory_list', []);
+ $this->directoryList = $this->buildDirectoryList();
}
return $this->directoryList;
}
--
Gitblit v1.10.0