Сегодня мы объясним, как отправить данные с помощью 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');