@Arkshine прислал мне это решение, которое добавляет пустое пространство перед изображением:
add_filter('wp_discourse_excerpt', [$this, 'wp_discourse_excerpt'], 10, 1);
/**
* Добавляет пустые строки перед любым тегом <img>.
* Цель — избежать сбоя в отображении загруженных изображений в формате Markdown в Discourse.
*
* @param $post_content
*
* @return string
*/
public function wp_discourse_excerpt($post_content)
{
$post_content = preg_replace('/(<img\s)/i', "\n\n$1", $post_content);
$post_content = preg_replace('/[\n]{3,}/', "\n\n", $post_content);
return $post_content;
}