From 772462eeca3002a1d52508aeba485aab2b4742ad Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 03 Mar 2026 19:06:19 +0000
Subject: [PATCH] =MAJOR OVERHAUL. Likely should have made a new branch ages ago. Key changes: Registrar.php is the base for custom post types, taxonomies, and user roles. Replaces JVB_CONTENT, JVB_TAXONOMY, and JVB_USER constants, eliminates most of Features.php (except for JVB_SITE, JVB_MEMBERSHIP), and has built in sanitizing and validation via sub-classes. Also started a major overhaul of the Schema output. Created a shit ton of property traits and classes to help sanitize and ensure proper data for different schema types. Still a bunch to do, but better to be starting committing changes here on this other branch.

---
 inc/meta/Storage.php |   25 +++++++++++++++++++------
 1 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/inc/meta/Storage.php b/inc/meta/Storage.php
index df1089c..74538ff 100644
--- a/inc/meta/Storage.php
+++ b/inc/meta/Storage.php
@@ -2,6 +2,7 @@
 namespace JVBase\meta;
 
 use Exception;
+use JVBase\managers\Cache;
 
 if (!defined('ABSPATH')) {
 	exit;
@@ -160,10 +161,7 @@
 			$this->wpdb->query('COMMIT');
 
 			// Update post modified timestamp
-			if ($updateTimestamp && $item->objectType === 'post' && $item->id) {
-				wp_update_post(['ID' => $item->id]);
-			}
-
+			Cache::invalidateItem($item->objectType, $item->id);
 			$this->clearCache($item);
 
 			return true;
@@ -433,7 +431,7 @@
 	{
 		return match ($name) {
 			'post_title' => get_the_title($item->id),
-			'post_excerpt' => get_the_excerpt($item->id),
+			'post_excerpt' => has_excerpt($item->id) ? get_the_excerpt($item->id):'',
 			'post_content' => get_post_field('post_content', $item->id),
 			default => $item->wpObject->$name ?? ''
 		};
@@ -465,6 +463,9 @@
 		$value = $field->value;
 
 		if (in_array($name, ['featured_image', 'post_thumbnail'])) {
+			if (empty($value)) {
+				return delete_post_thumbnail($item->id);
+			}
 			return set_post_thumbnail($item->id, $value) !== false;
 		}
 
@@ -737,8 +738,20 @@
 				set_post_thumbnail($id, $fields['post_thumbnail']);
 				unset($fields['post_thumbnail']);
 			}
+			if (isset($fields['post_thumbnail'])) {
+				if (empty($fields['post_thumbnail'])) {
+					delete_post_thumbnail($id);
+				} else {
+					set_post_thumbnail($id, $fields['post_thumbnail']);
+				}
+				unset($fields['post_thumbnail']);
+			}
 			if (isset($fields['featured_image'])) {
-				set_post_thumbnail($id, $fields['featured_image']);
+				if (empty($fields['featured_image'])) {
+					delete_post_thumbnail($id);
+				} else {
+					set_post_thumbnail($id, $fields['featured_image']);
+				}
 				unset($fields['featured_image']);
 			}
 

--
Gitblit v1.10.0