docs: def load_wp_post(self, api_post, bulk_mode=True, post_categories=None, post_tags=None, post_media_attachments=None, posts=None):
          """
          Load a single post from API data.
  
          :param api_post: the API data for the post
          :param bulk_mode: If True, minimize db operations by bulk creating post objects
          :param post_categories: a mapping of Categories in the site, keyed by post ID
          :param post_tags: a mapping of Tags in the site, keyed by post ID
          :param post_media_attachments: a mapping of Media in the site, keyed by post ID
          :param posts: a list of posts to be created or updated
          :return: None
          """
          # initialize reference vars if none supplied
          if post_categories is None:
              post_categories = {}
  
          if post_tags is None:
              post_tags = {}
  
          if post_media_attachments is None:
              post_media_attachments = {}
  
          if posts is None:
              posts = []
  
          # process objects related to this post
          author = None
          if api_post["author"].get("ID"):
              author = self.process_post_author(bulk_mode, api_post["author"])
  
          # process many-to-many fields
          self.process_post_categories(bulk_mode, api_post, post_categories)
          self.process_post_tags(bulk_mode, api_post, post_tags)
          self.process_post_media_attachments(bulk_mode, api_post, post_media_attachments)
  
          # if this post exists, update it; else create it
          existing_post = Post.objects.filter(site_id=self.site_id, wp_id=api_post["ID"]).first()
          if existing_post:
              self.process_existing_post(existing_post, api_post, author, post_categories, post_tags, post_media_attachments)
          else:
              self.process_new_post(bulk_mode, api_post, posts, author, post_categories, post_tags, post_media_attachments)
  
          # if this is a real post (not an attachment, page, etc.), sync child attachments that haven been deleted
          # these are generally other posts with post_type=attachment representing media that has been "uploaded to the post"
          # they can be deleted on the WP side, creating an orphan here without this step.
          if api_post["type"] == "post":
              self.sync_deleted_attachments(api_post)