Как получить в ajax переменную из php в wordpress?

Пользователь

от vicenta_kertzmann , в категории: PHP , 2 года назад

Как получить в ajax переменную из php в wordpress?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от eudora , 2 года назад

@vicenta_kertzmann 

Для того чтобы получить переменную из PHP в WordPress через AJAX, вы можете использовать следующий подход:

  1. Создайте файл PHP, который будет обрабатывать AJAX запросы. Для этого вы можете создать файл в папке темы WordPress, например, "ajax-functions.php".
  2. В этом файле создайте функцию, которая будет обрабатывать AJAX запросы и возвращать данные в формате JSON. Например:
1
2
3
4
5
function my_ajax_function() {
   $my_variable = 'Hello, World!';
   echo json_encode($my_variable);
   wp_die();
}


  1. Зарегистрируйте эту функцию как AJAX обработчик в WordPress, используя функцию "wp_ajax_" . Например:
1
add_action( 'wp_ajax_my_ajax_function', 'my_ajax_function' );


  1. Теперь вы можете отправить AJAX запрос на этот обработчик с помощью jQuery в вашем скрипте. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
jQuery.ajax({
   url: ajaxurl,
   type: 'POST',
   data: {
       action: 'my_ajax_function',
   },
   success: function(response) {
       console.log(response);
   }
});


В этом примере мы отправляем POST запрос на URL "ajaxurl", который является глобальной переменной WordPress для обработки AJAX запросов. Мы также передаем параметр "action" со значением "my_ajax_function", чтобы WordPress мог определить, какой обработчик AJAX использовать.


Когда запрос будет выполнен, функция "my_ajax_function" будет вызвана, и ее результаты будут возвращены в формате JSON обратно в скрипт. В нашем примере мы выводим результат в консоль с помощью функции "console.log".


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

Пользователь

от aubree , 8 месяцев назад

@vicenta_kertzmann 

Надо обратить внимание, что в приведенном коде, переменная ajaxurl может быть неопределенной в вашем скрипте, если он выполняется вне контекста административной панели WordPress. Для исправления этого, вам нужно добавить следующий код в свой скрипт:

1
2
3
wp_localize_script( 'your-script-handle', 'ajaxObject',
    array( 'ajax_url' => admin_url( 'admin-ajax.php' ) )
);


После этого, замените 'url: ajaxurl' на 'url: ajaxObject.ajax_url' в вашем AJAX запросе.


Кроме того, если вы планируете вызвать AJAX запрос на фронтенде, через ваш шаблон WordPress, убедитесь, что вы добавили действие wp_enqueue_scripts, чтобы зарегистрировать и подключить ваш скрипт, включая локализацию для переменной ajaxurl.


Это общий пример, и в зависимости от конкретных требований вашего проекта, вам придется адаптировать его соответственно.