Site icon Init HTML

Sử dụng AJAX trong WordPress

Đầu tiên, bạn cần thêm hàm xử lý vào functions.php. Ví dụ một hàm trả về tiêu đề, đường dẫn của category cùng với bài post mới nhất của category đó.

add_action('wp_ajax_latest', 'latest_post_cat');
add_action('wp_ajax_nopriv_latest', 'latest_post_cat');
function latest_post_cat() {
	query_posts('posts_per_page=1&cat=' . $_POST['cat']);
	if (have_posts()) { while (have_posts()) { the_post();
		$data[] = array(
				'cat_name' => get_cat_name($_POST['cat']),
				'cat_link' => get_category_link($_POST['cat']),
				'title' => get_the_title(),
				'link' => get_permalink(),
		);
	} }
    wp_send_json_success($data);
 
    die();
}

Lưu ý: Từ latest là tên action, chúng ta sẽ sử dụng sau.

Để sử dụng AJAX dễ dàng hơn, các bạn có thể sử dụng jQuery.

$.ajax({
	type: 'post',
	dataType: 'json',
	url: '<?php echo admin_url('admin-ajax.php'); ?>',
	data: {
		'action': 'latest',
		'cat': '1'
	},
	success: function(response) {
		if(response.success) {
			document.write('<a href="' + response.data[0].cat_link + '">' + response.data[0].cat_name + '</a> <a href="' + response.data[0].link + '">' + response.data[0].title + '</a>');
		}
	}
});

Lưu ý: Để tránh lỗi, các biến truyền đi trong data nên là dữ liệu kiểu chuỗi (string).

Chúc các bạn thành công!

Exit mobile version