Эта функция AJAX вызывается по щелчку:
$.ajax({
url: 'site/ajax.php',
data: {id: $('section#single article input:last-of-type').attr('value'), cote: 'like'}
}).done(function(html) {}
Он передает идентификатор поста (который содержится в скрытом вводе) для функции get_post_meta (), которая находится в ajax.php. Вот как выглядит AJAX.php:
$cote = get_post_meta($_GET['id'], 'cote', true);
if($_GET['cote'] == 'like') {
$newCote = $cote++;
update_post_meta($_GET['id'], 'cote', $newCote);
} else {
$newCote = $cote--;
update_post_meta($_GET['id'], 'cote', $newCote);
}
Предполагается обновить поле «cote» пользовательского сообщения, но проблема в том, что функция get_post_meta () не определена в ajax.php. Это сообщение об ошибке:
Fatal error: Call to undefined function get_post_meta() in /home2/electro/public_html/beta... on line 2
Если вы загрузите файл напрямую, ни одна из функций WordPress не будет работать. Вот почему вы почти всегда должны использовать AJAX API. AJAX API решает эту проблему. Все загружается в контексте WordPress.
Подключите это к системе AJAX:
Отправьте ваш запрос в
http: //site/wp-admin/admin-ajax.php code> и передайте
my_update_pm code> в качестве аргумента, когда Javascript делает запрос.
Вы можете установить
ajax_url code> аналогично этому из Кодекса: p>