protected function build()
{
$components = array();
$workspace = new Workspace($this->content_id());
// Handle body components first
foreach ($this->split_into_components() as $component) {
// Check if the component is valid
$component_array = $component->to_array();
if (is_wp_error($component_array)) {
$workspace->log_error('component_errors', $component_array->get_error_message());
} else {
$components[] = $component_array;
}
}
// Meta components are handled after and then prepended since
// they could change depending on the above body processing,
// such as if a thumbnail was used from the body.
$components = array_merge($this->meta_components(), $components);
// Group body components to improve text flow at all orientations
return $this->group_body_components($components);
}