Cách sử dụng Ajax trong WordPress

Ajax là kỹ thuật giúp xây dựng website động mà không cần phải load lại trang. Thông thường sau khi thực hiện một hành động nào đó như gửi Form, tìm kiếm, phân trang trong WordPress… Thì trang đó sẽ bị reload lại.

Đối với Ajax sẽ thực hiện request tới server và response lại phía client mà mọi dữ liệu đầu vào không bị mất đi.

Để sử dụng được Ajax bạn cần có chút về JavaScript và Jquery.

Xử lý phía Front-end

Đặt đoạn mã này trong cặp thẻ <script>…</script> và bên trong tập tin footer.php

$(document).ready(function(){
    $('.buttonMore').click(function(){
        $.ajax({
           type : "post",
           dataType : "html",
           url : '<?php echo admin_url('admin-ajax.php');?>',
           data : {
                action: "readmore",
                mess: "Nội dung thông báo"
           },
           beforeSend: function(){
                // Code
           },
           success: function(response) {
                $('.result').html(response);
           },
           error: function( jqXHR, textStatus, errorThrown ){
                //Làm gì đó khi có lỗi xảy ra
                console.log( 'The following error occured: ' + textStatus, errorThrown );
           }
       });
    });
});

Mình sẽ giải thích cụ thể như sau:

– Trước tiên sẽ sử dụng jQuery để lắng nghe sự kiện click

$(document).ready(function(){ 
  $('.buttonMore).click(function(){
  //
  });
});

.buttonMore là class của button

Bạn có thể tham khảo lại kiến thức qua bài Sự kiện Click() trong Jquery

– Tiếp theo thực hiện xử lý Ajax bằng khối lệnh

$.ajax({
  // Code
});

Trong đó:

  • type : “post” đây là phương thức xử lý gồm có GET, POST, PUT, DELETE, PATCH. 5 methods cơ bản dùng để gọi phía server Restful.
  • dataType : “html” đây là kiểu dữ liệu được trả về, có thể là JSON, script hay HTML
  • url : ‘<?php echo admin_url(‘admin-ajax.php’);?>’ Đường dẫn mặc định trong WordPresss chứa hàm xử lý dữ liệu.
  • action: “readmore” đây là tên của action. Sẽ được sử dụng trong PHP
  • beforeSend: function(){ // Code } Đoạn mã này được dùng để làm gì đó trước khi gửi dữ liệu. Có thể là thêm một hình ảnh động đang load chẳng hạn.
  • success: function(response) { $(‘.result’).html(response); } Đoạn mã này sẽ trả về dữ liệu vào class .result dưới dạng HTML.

Xử lý phía backend

Tiếp theo đó cần một đoạn mã để xử lý dữ liệu phía backend bằng mã PHP.

add_action( 'wp_ajax_readmore', 'getPost' );
add_action( 'wp_ajax_nopriv_readmore', 'getPost' );
function getPost() {
  // Code Logic
}

Quan sát đoạn code phía trên bạn sẽ thấy nó sử dụng Action Hook để truyền dữ liệu từ hàm (function) và action đã đặt ở trên với ajax action: “readmore”.

wp_ajax_ và wp_ajax_nopriv_ đây là mặc định của WordPress. Khi viết bạn chỉ cần thêm tên action phía sau là được.

Ở bên trong hàm function getPost() {} bạn sẽ viết các đoạn mà PHP như WP_Query lấy bài viết chẳng hạn.

Chỉ đơn giản như vậy thôi. Nếu bạn chưa biết cách sử dụng Ajax trong WordPress hãy đọc và thực hành ngay đi nhé.

Related Posts

Hướng dẫn cách tắt comment trong wordpress

Trong quá trình xây dựng và quản lý một trang web WordPress, việc tắt chức năng comment có thể là một yêu cầu phổ biến. Điều này…

7 Cách chọn sản phẩm kinh doanh online thành công

7 Cách chọn sản phẩm kinh doanh online thành công

Kinh doanh online bên cạnh những ưu thế thì rủi ro cũng không hề nhỏ, việc bạn tính toán thật kỹ lưỡng trước khi quyết định bán…

Chỉnh sửa Header trong WordPress

Header là khu vực hiển thị phần đầu tiên của trang web. Tại đây nó sẽ hiển Logo, banner, Menu hoặc các mạng xã hội được tích…

doi-mat-khau-admin-wordpress-1

Đổi password admin trong WordPress

Khu vực quản trị của WordPress chỉ admin mới có thể đăng nhập được. Vì thế mật khẩu đóng vai trò quan trọng. Một password sử dụng…

Upload Theme trong Wordpress

Hướng dẫn cách up Theme lên WordPress

Với những người mới bắt đầu học WordPress thường gặp khó khăn khi thay đổi giao diện. Bài viết này sẽ giúp bạn biết cách upload theme,…

Hướng dẫn chỉnh sửa theme WordPress

Trước đây mới làm quen với nền tảng WordPress mình cảm thấy khá khó khăn không biết làm thế nào để chỉnh sửa theme Wordpres, mãi một…