Объясню по частям:
0. Сайт про рыб. Селекты сделаны с select2.js
1. Использую обычный тип записи вопдпресса. Там у меня есть древовидные категории.
ЦАРСТВО — ТИП — КЛАСС — ОТРЯД — СЕМЕЙСТВО — РОД — ВИД (а вид - это уже название поста, это не категория).
2. У меня на странице search.php должна быть форма состоящая из 7 селектов (первые два селектор можно не делать, я их сделаю как заглушки. потому что царство (животные) и тип (хордовые) всегда одинаковые). Выбор идет сверху. Т.е. первый выбор - это КЛАСС, после него уже можно будет выбрать ОТРЯД, и т.д.
Идея заключается в том, что в селекте ОТРЯДа должны быть только те категории, которые в дереве выбранного КЛАССа.
3. Нужно также учесть, что человек уже после выбранного например селекта КЛАСС, может поменять в нем выбор, и тогда должны обновиться категории и внутри следующих селектов. Можно сделать либо чтобы изначально были все селекты и категории в них обновлялись при каждом выборе, либо чтобы Селесты друг за другом создавались. А когда в выбранном селекте переопределяли значение, то удалялись следующий/ие после него Селесты и создавалось заново.
Прикладываю скрин категорий из админки. Прикладываю скрин формы из селектов.
Надо учесть, что категории в будущем будут добавляться, поэтому нельзя их точно определить, надо брать список из базы данных (если я правильно понимаю).