почему не работает ajax, что add_action, зарегистрированное в wordpress

Я создаю страницу шаблона в WordPress и использую add_action для определения действия, которое используется в Ajax.

<?php /*template name: get_pass */ add_filter('wp_ajax_my_action1','mda_get_license'); function mda_get_license(){ echo 54; die(); } ?> 

и использовать код jQuery ниже:

 (function( $ ) { $(function(){ $("#btn_code").click(function(){ showPass($("#input_serial").val()); }); function showPass(str) { if (str.length != 0) { $.post("http://example.com/wp-admin/admin-ajax.php",{action:'my_action1'},function (response) { alert(response); }) } } }); })(jQuery); 

когда я добавляю add_action в function.php темы, работа ajax, но когда кладет add_action в мой файл шаблона ajax return 0. i use

 global $wp_filter; print_r($wp_filter); 

увидеть зарегистрированное действие и увидеть, что зарегистрировано два действия. теперь почему я add_action в свой файл шаблона Ajax return 0 во время зарегистрированного действия?

Запрос AJAX представляет собой отдельный запрос от того, который отображает вашу страницу. Ваш обработчик AJAX регистрируется в запросе, который обслуживает страницу, но не в запросе AJAX, который имеет значение.

Переместите add_action и функцию в файл functions.php вашей темы, который загружается по всем запросам.