В корне сайта лежит JS скрипт, который отбирает ссылку и отправляет запрос, а именно: $("#selectRegion > a").click( function() { var RegName = $(this).text(); var RegID = $(this).attr("id"); var data = { action: 'my_action', Name: RegName, ID: RegID }; $.ajax({ type : "post", dataType : "text", url : "../wp-admin/admin-ajax.php?action=my_action", data : data, success: function(response){ alert('Сервер вернул ответ: ' + response); } }); }); Далее в admin-ajax.php цепляем 2 экшена: add_action('wp_ajax_my_action', 'my_action_callback'); add_action("wp_ajax_nopriv_my_action", "my_action_callback"); В functions.php сам код, который добавляет выбранный регион в куки и редиректит на ссылку этого региона пока кук жив: function my_action_callback (){ $RegName = $_REQUEST['Name']; $ID = $_REQUEST['ID']; global $formRegion; //глобальная formregion if(isset($RegName) && isset($ID)) { $region = '?cat='.$ID; //формируем адрес для редиректа setcookie("city", $ID, time()+3600, '/'); //запоминаем выбраный регион if(is_home()) { wp_redirect( $region ); //редиректим, если страница главная exit; } } if(isset($_COOKIE['city']) and is_home() ) { $formRegion = $_COOKIE['city']; $region = '?cat='.$formRegion; wp_redirect($region); exit; } } Вот. В итоге ошибка Fatal error: Call to undefined function add_action(). Ошибка указывает на admin-ajax.php где и прописаны эти экшены. Пробывал заменить на фильтры, проблема не решилась.