Я у себя сделал так:
В functions.php вставляем:
function get_current_URL() {
$current_url = 'http';
$server_https = $_SERVER["HTTPS"];
$server_name = $_SERVER["SERVER_NAME"];
$server_port = $_SERVER["SERVER_PORT"];
$request_uri = $_SERVER["REQUEST_URI"];
if ($server_https == "on") $current_url .= "s";
$current_url .= "://";
if ($server_port != "80") $current_url .= $server_name . ":" . $server_port . $request_uri;
else $current_url .= $server_name . $request_uri;
$cat_uri = substr($current_url, 19, 3);
return $cat_uri;
}
функция, возвращает первые несклолько символов после адреса сайта, например для ссылки
http://site.ru/news/today
эта функция вернет new
длина имени сайта и количество возвращаемых символов определяются строкой
$cat_uri = substr($current_url, 19, 3);
Далее, в шаблон в месте вызова меню вставляем:
<?php if (get_current_URL() == 'первые-символы-адреса-категории-1') : ?>
вызов меню 1
<?php else : ?>
<?php if (get_current_URL() == 'первые-символы-адреса-категории-2') : ?>
вызов меню 2
<?php endif; ?>
<?php endif; ?>
Можно ещё определять категорию по id, но у меня это не получилось из-за вложенности категорий, по адресу сделать было проще.