Теперь давайте углубимся в различные методы использования wp_ajax_nopriv, а также приведем примеры кода.
Метод 1: постановка скриптов в очередь в WordPress
// Enqueue the JavaScript file
function wpse_enqueue_scripts() {
wp_enqueue_script( 'my-ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array( 'jquery' ), '1.0', true );
// Pass the admin-ajax.php URL to the JavaScript file
wp_localize_script( 'my-ajax-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'wpse_enqueue_scripts' );
Метод 2: создание обработчика Ajax в файле function.php
// Ajax Handler for non-logged-in users
function wpse_ajax_handler() {
// Perform your desired actions here
$data = $_POST['data'];
// Return a response
echo json_encode( array( 'message' => 'Success!', 'data' => $data ) );
// Important: Stop executing any further code
wp_die();
}
add_action( 'wp_ajax_nopriv_my_ajax_action', 'wpse_ajax_handler' );
Метод 3. Реализация Ajax-запроса в JavaScript
jQuery(document).ready(function($) {
// Handler for the Ajax request
$('#my-button').click(function() {
var data = {
action: 'my_ajax_action',
data: 'Hello, Ajax!'
};
$.post(ajax_object.ajax_url, data, function(response) {
// Process the response
console.log(response);
});
});
});
Это всего лишь несколько примеров того, как вы можете использовать wp_ajax_nopriv в WordPress для обработки запросов Ajax от незарегистрированных пользователей. Не забудьте заменить «my-ajax-action» на желаемое имя действия Ajax, а «my-button» — на идентификатор или класс кнопки, запускающей запрос Ajax.