WordPressで特定エントリの所属カテゴリを「親→子」の順に並び替える

例えばこういう、親子関係のあるカテゴリ構成があったとします

勇者
 ー時の勇者
 ー風の勇者
 ー神に選ばれし勇者

ある記事を「勇者 風の勇者」のカテゴリに指定した場合、普通にget_the_category()を使うと「勇者 風の勇者」ではなく機械的にアルファベット順に「風の勇者 勇者」と並べられてしまってヴァーとなることがあります

試行錯誤で2パターンほど対処法を試したので両方メモしておきます

解法その1

参考にさせていただいた記事です。ありがとうございます!
カスタムタクソノミーに親子関係(階層)を持たせ、複数選択したタームの並び順を親>子の順番に表示する
※「children[]」という箇所が自分の環境では動作しなかったので、自分なりに書き換えましたが、ちょっと頭の悪い処理かもしれません。ごめん。

functions.php

テンプレートの該当箇所

解法その2

こっちの方法では、階層の同じカテゴリを複数指定した場合はうまくいかないです。

参考にさせていただいたのは下記の二つの記事です。ありがとうございます!
カテゴリIDを階層順に並べた配列をつくる Wordpressテーマの作り方
カテゴリIDからカテゴリ名/スラッグを取得する

function.php

テンプレートの該当箇所