Jake Vanderwerf
2026-01-04 22e1bb3fcc3b3db1c0f5c2e6a4aecaf408c307a5
inc/rest/routes/ContentRoutes.php
@@ -36,7 +36,7 @@
    {
        $this->cache_name = 'user_content_'.get_current_user_id();
        parent::__construct();
      $this->cache->clear();
        $this->action = 'dash-';
        $this->operation_type = 'content_update';
        add_filter(BASE.'handle_bulk_operation', [$this, 'processOperation'], 10, 3);
@@ -261,6 +261,16 @@
      if (Features::forContent($post_type)->has('is_calendar'))  {
         $args = $this->applyCalendarFilters($args, $params);
      }
      $taxonomies = array_filter($params, function($param) {
         return str_starts_with($param, 'tax_');
      }, ARRAY_FILTER_USE_KEY);
      if (!empty($taxonomies)) {
         $params['taxonomies'] = [];
         foreach ($taxonomies as $taxonomy => $terms) {
            $taxonomy = str_replace('tax_', '', $taxonomy);
            $params['taxonomies'][$taxonomy] = $terms;
         }
      }
      if (array_key_exists('taxonomies', $params)) {
         $args = $this->applyTaxonomyFilters($args, $params);
      }
@@ -287,7 +297,6 @@
        $cache = $this->cache->get($key);
      $cache = false;
        if ($cache) {
            $response = new WP_REST_Response($cache);
         return $this->addCacheHeaders($response);
@@ -360,7 +369,20 @@
        foreach ($posts as $ID => $post_data) {
         if (Features::forContent($post_data['content'])->has('is_timeline') && array_key_exists('timeline', $post_data)) {
            $results[$ID] =$this->processTimelinePost($ID, $post_data);
            // Handle timeline posts - ensure we have a valid integer ID
            $parent_id = (int)$ID;
            // Skip if ID is invalid (0, 'null', etc would become 0)
            if ($parent_id === 0) {
               error_log('Invalid timeline parent ID: ' . $ID);
               $results[$ID] = [
                  'success' => false,
                  'message' => 'Invalid parent post ID for timeline'
               ];
               continue;
            }
            $results[$ID] = $this->processTimelinePost($parent_id, $post_data);
            continue;
         }
         if (str_starts_with($ID, 'new')) {
@@ -863,7 +885,7 @@
      return $images;
   }
   protected function formatTimeline(WP_Post $post):array
   public function formatTimeline(WP_Post $post):array
   {
      $item = $this->prepareItem($post, true, false);
      //Step 1: Get the fields that apply to all posts