Как разместить данные с использованием Ajax в WordPress

Сегодня мы объясним, как отправить данные с помощью Ajax в WordPress без использования или создания нового плагина.
Покажем, как получить данные из базы данных с помощью Ajax в WordPress с помощью functions.php без использования каких — либо плагинов, так что читайте внимание этот пост. Пожалуйста, убедитесь, что вы уже включили последнюю версию JQuery. Вы можете загрузить последнюю версию JQuery здесь: http://code.jquery.com/jquery-latest.js
Как разместить данные с использованием Ajax в WordPress
Откройте файл functions.php из текущей активированной папки темы WordPress и добавьте следующий код в конце файла и сохраните его . Эта функция включит автозаполнение JS и CSS на вашем сайте.
/**
* Функция для получения данных из базы данных с помощью AJAX.
*/
function myscripts() {
wp_enqueue_script('customjs', get_stylesheet_directory_uri().'/js/jquery.custom.js', array('jquery'));
wp_enqueue_script('autocomplete', get_stylesheet_directory_uri().'/js/jquery.auto-complete.js', array('jquery'));
wp_enqueue_style('autocomplete.css', get_stylesheet_directory_uri().'/js/jquery.auto-complete.css');
}
add_action('wp_enqueue_scripts', 'myscripts');
Теперь создайте файл jquery.custom.js в папке js и добавьте фрагмент кода ниже. Код будет размещать вводимые пользователем данные из текстового поля поиска в функцию fwm_autocomplete, которая записывается в файл functions.php.
$(document).ready(function ($) {
$(".search-box").autoComplete({
source: function (user_input, response) {
$.ajax({
type: 'POST',
dataType: 'json',
url: admin_ajax_url,
data: 'action=fwm_autocomplete&user_input=' + user_input,
success: function (data) {
response(data);
}
});
},
});
});
Теперь снова перейдите в файл functions.php и скопируйте и вставить ниже код в конце файла и сохраните его. Код будет получать данные из таблицы базы данных, на основе данных user_input и вернется в формате JSON. Вы можете использовать эти данные, где вы хотите.
//Функция для извлечения данных из таблицы базы данных
function fwm_autocomplete(){
global $wpdb;
$user_input = $_POST['user_input'];
$qry= 'SELECT DISTINCT(meta_value) FROM df_postmeta WHERE meta_value LIKE "%'.$user_input.'%" AND meta_key="freewebmentor"';
$results = $wpdb->get_results($qry, ARRAY_A);
echo json_encode($$results);
exit(); //остановка "0" с выходом
}
add_action('wp_ajax_nopriv_fwm_autocomplete', 'fwm_autocomplete');
add_action('wp_ajax_fwm_autocomplete', 'fwm_autocomplete');
Редактор: AndreyEx