Você deve remover o delimitador do gatilho enquanto executa via PHP.mysql_ ou funções mysqli_ devem ser capazes de executar o gatilho sem o delimitador.
Aqui está como fazê-lo.
$this->db->query("
CREATE TRIGGER `delete_post` BEFORE DELETE ON `posts`\r\n
FOR EACH ROW BEGIN\r\n
DELETE FROM page_content WHERE page_content.post_id = OLD.post_id;\r\n
END\r\n
//\r\n
");