/**
  * Write an ElementContent block with $Content.
  *
  * @return boolean
  */
 public function setElementalContent(DataObjectInterface $record, $post_content)
 {
     if (!isset($this->_classes_using_wordpress_extension['ElementContent'])) {
         throw new WordpressImportException('Must put "WordpressImportDataExtension" on BaseElement.');
     }
     if (!isset($this->_classes_using_elemental[$record->class])) {
         if ($record instanceof SiteTree) {
             throw new WordpressImportException('Must put "WordpressImportDataExtension" on SiteTree.');
         } else {
             throw new WordpressImportException('Must put "WordpressImportDataExtension" on ' . $record->class . '.');
         }
     }
     $post_content = trim($this->_db->process('post_content', $post_content));
     $elementBlocks = $record->ElementArea()->Elements();
     if (!$record->exists()) {
         $subRecord = ElementContent::create();
         $subRecord->HTML = $post_content;
         $subRecord->WordpressData = $record->WordpressData;
         $elementBlocks->add($subRecord);
         // note(Jake): when page $record is written, the rest will write into it. 3.2+ at least.
     } else {
         $subRecord = $elementBlocks->filter(array('WordpressID' => $record->WordpressID, 'ClassName' => 'ElementContent'))->first();
         $isNew = false;
         if (!$subRecord) {
             $subRecord = ElementContent::create();
             $isNew = true;
         }
         if ($subRecord->HTML !== $post_content) {
             // Avoid getChangedFields triggering below by checking equality first.
             $subRecord->HTML = $post_content;
         }
         $subRecord->WordpressData = $record->WordpressData;
         $changedFields = $subRecord->getChangedFields(true, DataObject::CHANGE_VALUE);
         if ($changedFields) {
             try {
                 $isPublished = $subRecord->isPublished();
                 $this->writeAndPublishRecord($subRecord);
                 return true;
             } catch (Exception $e) {
                 $this->log($subRecord, 'error', $e, 1);
                 throw $e;
             }
         }
         if ($isNew) {
             $elementBlocks->add($subRecord);
         }
     }
 }