san_jorich
@san_jorich
Творческий кодер

Как работает wp_doing_ajax()?

Здравствуйте!
Пытаюсь написать php-функцию, обрабатывающую в том числе и ajax запрос
add_action('wp_ajax_rotator_get_id3_tags', 'rotator_get_id3_tags');
function rotator_get_tags($file){
    if( wp_doing_ajax() ){  $file = $_POST['file']; }
    $TagsReader = new ID3TagsReader();
    $Tags = wp_read_audio_metadata( $file );
    if( wp_doing_ajax() ) { wp_send_json($Tags); } else { return $Tags; }
}

т.е. если есть запрос то принимать POST и отдавать json, если нет - просто возвращать массив.
Но почему-то не работает. Не реагирует на ajax.. Что не так делаю?

и еще..

если пишу ту же функцию отдельно, как обработку запроса: то все работает
<?php 

add_action('wp_ajax_rotator_get_id3_tags', 'rotator_get_id3_tags_');

function rotator_get_tags($file){
    $TagsReader = new ID3TagsReader();
    $Tags = wp_read_audio_metadata( $file );
    return $Tags; 
}

function rotator_get_id3_tags_($file){    
    $file = $_POST['file'];
    $TagsReader = new ID3TagsReader();    
    $Tags = wp_read_audio_metadata( $file );
    wp_send_json($Tags);
}

?>

  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 1
selico
@selico
WordPress
У вас ajax action ссылается на несуществующую функцию rotator_get_id3_tags, замените на rotator_get_tags
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы