REST API (Representational State Transfer Application Programming Interface) là một phần quan trọng trong hệ thống WordPress hiện đại, cho phép bạn tương tác với dữ liệu và chức năng của trang web của bạn thông qua các yêu cầu HTTP. REST API WordPress mở cửa cho việc tích hợp dễ dàng với các ứng dụng di động, dịch vụ bên ngoài, và nhiều ứng dụng khác. Trong bài viết này, chúng ta sẽ tìm hiểu về REST API WordPress từ cơ bản đến nâng cao.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
add_action( 'rest_api_init', array($this,'api')); function api(){ //https://domain.dev/wp-json/bize-get/create-subsite/ register_rest_route('bize-get', '/create-subsite', array( 'methods' => 'POST', 'callback' => array($this,'createSubsiteByApi') )); register_rest_route('bize-get', '/check-email-available', array( 'methods' => 'POST', 'callback' => array($this,'checkEmailAvailable') )); register_rest_route('bize-get', '/check-user-available', array( 'methods' => 'POST', 'callback' => array($this,'checkUserAvailable') )); } |
1 2 3 4 5 6 7 8 9 10 11 |
function checkUserAvailable($request){ $output= json_decode($request->get_body(), true); // Chuyển JSON thành mảng if ( username_exists( $output['user_name'] ) ) { $results = 0; } else { $results = 1; } return new \WP_REST_Response( $results ); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
check_user_available: function() { $(document).on('change blur', '#userName', function(e) { //console.log('dang nhap'); var userName = $(this).val(); $("div#urlid").html("https://" + userName + ".domain.com.vn"); //check has dot if (userName.indexOf('.') > 1) { alert("Tên đăng nhập không được chứa dấu '.'"); $('#userName').focus(); return false; } $('#username-exist-alert').hide(); var submit_data = { action: 'check_user_available', user_name: userName, }; $.ajax({ type: 'POST', url: '<?php echo admin_url('admin-ajax.php'); ?>', data: submit_data, success: function(response) { console.log(response); if (response.success) { var data = response.data; if (data.status == 'no') { $('#username-exist-alert').html( 'Tên đăng nhập đã được đăng ký trong hệ thống Domain. Vui lòng chọn tên đăng nhập khác!' ).show(); $('#userName').focus(); //return false; } } } }); }); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
function checkUserAvailable(){ $results = array(); $data = array( 'user_name' => $_POST['user_name'] ); $args = array( 'body' => json_encode($data), // Chuyển dữ liệu thành JSON nếu bạn muốn sử dụng JSON 'headers' => array( 'Content-Type' => 'application/json', // Đặt loại nội dung là JSON ), 'timeout' => 15, ); $response = wp_remote_post('https://domain.com.vn/wp-json/bize-get/check-user-available', $args); if ( is_array( $response ) && ! is_wp_error( $response ) ) { $body = $response['body']; // use the content $results=json_decode($body,true); } wp_send_json_success($results); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
// https://abc.vn/wp-json/out/get-product-list-by-cat/249 register_rest_route( 'out' , '/get-product-list-by-cat/(?P<id>\d+)', array( 'methods' => 'GET', 'callback' => array($this,'getProductListBy')) ); function getProductListBy($request){ $results = array(); $catId = (int) $request['id']; $results['id'] = $catId; $term = get_term( $catId,'product_cat'); $results['name'] = $term->name; $productList = array(); $args = array( 'post_type' => 'product', 'posts_per_page' => -1, 'post_status' => 'publish', 'tax_query' => array( array( 'taxonomy' => 'product_cat', 'field' => 'term_id', 'terms' => array($catId) ) ), ); $ps = get_posts($args); if($ps){ foreach($ps as $p){ $productItem = array(); $post_thumbnail_id = get_post_thumbnail_id($p->ID); $src_thumbnail =wp_get_attachment_image_src($post_thumbnail_id , 'medium'); $productItem['name'] = $p->post_title; $productItem['thumbnail'] = $src_thumbnail[0]; $productItem['id'] = $p->ID; $productItem['regular_price'] = get_post_meta($p->ID,"_regular_price",true); $productItem['sale_price'] = get_post_meta($p->ID,"_sale_price",true); array_push($productList,$productItem); } } $results['product_list'] = $productList; wp_send_json_success($results); } |
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress