Я бы заюзал плагин "Posts2Posts" или "Advanced Custom Fields" (зависит от уровня нужной гибкости).
Сделал бы 3 типа данных:
- песня (или текст песни - как вам лучше представляется)
- альбом
- артист
Соединил бы эти 3 типа данных нужными связи (опять же от уровня гибкости зависит).
А дальше в шаблоне single-artist.php
- запрашиваем все альбомы артиста
- бежим по ним циклом
- в котором запрашиваем для каждого альбома все привязанные тексты
- бежим циклом по полученным текстам и выводим ссылки на них
Таксономии в WP получаются такие негибкие для задач подобных вашей... Единственный минус в моём варианте это возможно меньшая производительность всех этих запросов и циклов. Зато прозрачная структура.
p2p реализует связь "многие-ко-многим" между типами записей. ACF такого не умеет, а иногда это надо. А таксономии wp хороши, пока не нужна мета-информация для связей или пока не обвешаешь их таким количеством мета-полей что они уже становятся самыми обычными типами записей.