Jake Vanderwerf
2026-09-13 1aa7c404dae63c9518468fe9b579fad819f8d871
jvb.php
@@ -15,6 +15,7 @@
use JVBase\admin\SEOAdmin;
use JVBase\base\SchemaHelper;
use JVBase\blocks\CustomBlocks;
use JVBase\inc\rest\routes\OpenStreetMaps;
use JVBase\JVB;
use JVBase\managers\AdminPages;
use JVBase\managers\Approvals;
@@ -53,57 +54,57 @@
/**
 * Track REST API errors by wrapping request execution
 */
add_filter('rest_pre_dispatch', function($result, $server, $request) {
   // Store request details globally for error logging
   $GLOBALS['jvb_rest_request'] = [
      'route' => $request->get_route(),
      'method' => $request->get_method(),
      'params' => $request->get_params(),
      'time' => microtime(true),
   ];
   // Set up error handler for this request
   set_error_handler(function($errno, $errstr, $errfile, $errline) {
      if (!(error_reporting() & $errno)) {
         return false;
      }
      $context = array_merge($GLOBALS['jvb_rest_request'] ?? [], [
         'error_type' => $errno,
         'error_message' => $errstr,
         'file' => $errfile,
         'line' => $errline,
         'user_id' => get_current_user_id(),
      ]);
      error_log('JVB REST Error: ' . json_encode($context));
      return false; // Let PHP handle it normally too
   });
   return $result;
}, 10, 3);
add_filter('rest_post_dispatch', function($result, $server, $request) {
   // Restore default error handler
   restore_error_handler();
   // Check for fatal errors that occurred during request
   $error = error_get_last();
   if ($error && in_array($error['type'], [E_ERROR, E_USER_ERROR, E_PARSE, E_COMPILE_ERROR])) {
      $context = array_merge($GLOBALS['jvb_rest_request'] ?? [], [
         'fatal_error' => $error,
         'user_id' => get_current_user_id(),
      ]);
      error_log('JVB REST Fatal: ' . json_encode($context));
   }
   // Clean up
   unset($GLOBALS['jvb_rest_request']);
   return $result;
}, 10, 3);
//add_filter('rest_pre_dispatch', function($result, $server, $request) {
// // Store request details globally for error logging
// $GLOBALS['jvb_rest_request'] = [
//    'route' => $request->get_route(),
//    'method' => $request->get_method(),
//    'params' => $request->get_params(),
//    'time' => microtime(true),
// ];
//
// // Set up error handler for this request
// set_error_handler(function($errno, $errstr, $errfile, $errline) {
//    if (!(error_reporting() & $errno)) {
//       return false;
//    }
//
//    $context = array_merge($GLOBALS['jvb_rest_request'] ?? [], [
//       'error_type' => $errno,
//       'error_message' => $errstr,
//       'file' => $errfile,
//       'line' => $errline,
//       'user_id' => get_current_user_id(),
//    ]);
//
//    error_log('JVB REST Error: ' . json_encode($context));
//
//    return false; // Let PHP handle it normally too
// });
//
// return $result;
//}, 10, 3);
//
//add_filter('rest_post_dispatch', function($result, $server, $request) {
// // Restore default error handler
// restore_error_handler();
//
// // Check for fatal errors that occurred during request
// $error = error_get_last();
// if ($error && in_array($error['type'], [E_ERROR, E_USER_ERROR, E_PARSE, E_COMPILE_ERROR])) {
//    $context = array_merge($GLOBALS['jvb_rest_request'] ?? [], [
//       'fatal_error' => $error,
//       'user_id' => get_current_user_id(),
//    ]);
//
//    error_log('JVB REST Fatal: ' . json_encode($context));
// }
//
// // Clean up
// unset($GLOBALS['jvb_rest_request']);
//
// return $result;
//}, 10, 3);
@@ -441,6 +442,8 @@
   {
      NewsRoutes::getInstance();
   }
   OpenStreetMaps::getInstance();
}
@@ -554,16 +557,10 @@
   );
}
add_action( 'doing_it_wrong_run', function ( $function_name ) {
   if ( '_load_textdomain_just_in_time' === $function_name ) {
      // This will print the full execution path to your screen or log
      debug_print_backtrace();
   }
} );
add_filter('the_seo_framework_sitemap_exclude_ids', 'jvb_maybe_exclude_singles', 8, 1);
function jvb_maybe_exclude_singles(array $IDs):array
{
   return Registrar::maybeExcludeSingles($IDs);
}