Vous devez supprimer le délimiteur du déclencheur lors de l'exécution via PHP. Les fonctions mysql_ ou mysqli_ doivent pouvoir exécuter le déclencheur sans le délimiteur.
Voici comment procéder.
$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
");