Người Viết : ViKiMi Editor

Chức năng Upload Files cung cấp cho WordPress Website một sức mạnh khác biệt!!
Chắc hẳn việc Upload Files tới Server sẽ rất quan trọng nếu bạn muốn các Tài Liệu được lưu trữ ở nơi bạn muốn. Có rất nhiều dịch vụ cho phép bạn lưu trữ Files một cách miễn phí. Tuy nhiên, nếu tất cả các Files được lưu trữ tại Website của bạn thì thật tốt, bạn có thể cung cấp cho tất cả người dùng dịch vụ liên quan đến các Files mà bạn mong muốn. Website của bạn sẽ có khả năng chia sẻ cao hơn.
Như vậy, Upload Files là rất quan trọng nếu bạn muốn phát triển một dịch vụ riêng.
Điều này quả thực không khó! Với xử lý jQuery Ajax bạn hoàn toàn có thể yên tâm rằng nó đơn giản. Sự kết hợp Ajax làm cho Website có nhiều sức mạnh hơn.
Để làm được điều này chúng ta cần tiến hành các bước:
BƯỚC 1 : Tại file Content.php của WordPress (Đây chỉ là một File ví dụ sẽ chứa Code xử lý, bạn sẽ chọn một Template File phù hợp và thực hiện xác nhận quyền truy cập etc…), thực hiện tạo một chức năng cho phép Người quản lý Website thực hiện Upload Files khi Click vào thành phần Form Upload.
Chúng ta có phần xử lý upload Nhiều Files hình ảnh như sau :
<form enctype="multipart/form-data">
<label>Choose File:</label>
<input type="file" id="file" accept="image/*" multiple />
</form>
BƯỚC 2 : Đăng kí File jQuery chứa xử lý jQuery AJAX
Chúng ta sẽ đăng kí tại file function.php của chủ đề / theme mà bạn đang kích hoạt. Việc này sẽ cho phép bạn tích hợp xử lý Ajax vào WordPress.
function blog_scripts() {
// Register the script
wp_register_script( 'uploadfiles-script', get_stylesheet_directory_uri(). '/js/upload_files.js', array('jquery'), false, true );
// Localize the script with new data
$script_data_array = array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'security' => wp_create_nonce( 'file_upload' ),
);
wp_localize_script( 'uploadfiles-script', 'blog', $script_data_array );
// Enqueued script with localized data.
wp_enqueue_script( 'uploadfiles-script' );
}
add_action('wp_enqueue_scripts', 'blog_scripts');
Thực hiện đăng kí File upload_files.js với WordPress!
Ở đây, chúng ta đã thực hiện truyền 1 biến chứa thông tin là :
Ajaxurl : Chúng ta sẽ thực hiện gọi đường dẫn url trong WordPress, cụ thể là gọi tới file admin – ajax .php, để thực hiện các yêu cầu xử lý
Security : Cho phép bảo mật thông tin
BƯỚC 3 : Thực hiện xử lý jQuery AJAX tại file upload_files.js
Đây là File cho phép thực hiện xử lý của chức năng Upload Files bằng ajax. Và tại sao nó quan trọng? Bởi vì nó cho phép người dùng Upload File mà không cần Load lại toàn bộ nội dung trang hiện tại.
jQuery(function($) {
$('body').on('change', '#file', function() {
$this = $(this);
file_obj = $this.prop('files');
form_data = new FormData();
for(i=0; i<file_obj.length; i++) {
form_data.append('file[]', file_obj[i]);
}
form_data.append('action', 'file_upload');
form_data.append('security', blog.security);
$.ajax({
url: blog.ajaxurl,
type: 'POST',
contentType: false,
processData: false,
data: form_data,
success: function (response) {
$this.val('');
alert('File(s) đã Upload thành công.');
}
});
});
});
BƯỚC 4 : Thực hiện xử lý action file_upload và đăng kí
Khi jQuery Ajax thực hiện Call Action thì phần xử lý Action này sẽ được thực hiện. Và nội dung Code này sẽ đặt tại function.php
add_action('wp_ajax_file_upload', 'file_upload_callback');
add_action('wp_ajax_nopriv_file_upload', 'file_upload_callback');
function file_upload_callback() {
check_ajax_referer('file_upload', 'security');
$arr_img_ext = array('image/png', 'image/jpeg', 'image/jpg', 'image/gif');
if (in_array($_FILES['file']['type'], $arr_img_ext)) {
$upload = wp_upload_bits($_FILES["file"]["name"], null, file_get_contents($_FILES["file"]["tmp_name"]));
// $upload['url'] sẽ cung cấp đường dẫn Files đã tải lên
}
wp_die();
}
Ở phía trên, chúng ta có :
– Wp_ajax_{action} cho phép kích hoạt Action của Ajax
– Với wp_ajax & wp_ajax_nopriv đã thêm Action là File_upload
– File_upload_callback chính là Method sẽ thực thi mã lệnh Upload File
Như vậy, thật đơn giản để tạo chức năng Upload Files cho Website của bạn. Nó mang lại hiệu quả rất lớn. Và rõ ràng so với Upload Files xử lý đơn thuần chỉ có PHP thì chúng ta đã có một chức năng mới hoàn hảo hơn. Chức năng này cho phép tăng sức mạnh xử lý cho trang Website & giúp tốc độ Website được tốt nhất.