я бы с помощью php
$my_url = explode('/', $_SERVER["REQUEST_URI"]);
получил бы перебором последний элемент который отвечает за slug(является url именем записи, категории, страницы). Нужно обратить внимание, что в url строке может присутствовать пагинация(page/2 к примеру).
Затем я бы стандартными функциями is_front_page(), is_single(), is_page(), is_category() проверил бы чем является текущая страница. В эти функции надо передавать параметр, как раз slug. Проблема в этом методое в том, что могут существовать записи,страницы,категории с одинаковым slug. Для категорий проверка простая, опять же найти в $my_url слово category(оно по умолчанию, но можно его изменить).