CHƯƠNG TRÌNH GIẢM 50% GIÁ TẤT CẢ CÁC GÓI HOSTING WORDPRESS => Link giảm 50%
Trong quá trình học WordPress, đôi khi bạn cần code thêm chức năng tải ảnh, file cần thiết. Đây là bài viết nâng cao dành cho các bạn đã có chút kiến thức lập trình giải quyết được vấn đề bạn đang cần.
2. Các bước thực hiện form tải file trong WordPress
1. Tạo file input
Tải một hoặc nhiều file trong một lần multiple. Sao chép đoạn html này nhúng vào file template trong theme kích hoạt và làm theo các bước hướng dẫn bên dưới.
<form action="/" method="post" enctype="multipart/form-data"> <input class="form-control" type="file" multiple="multiple" name="files-upload[]"> <button name="action" type="submit">Upload</button> </form>
Nếu chỉ tải một file, bạn sửa lại file input như sau:
<input class="form-control" type="file" name="files-upload">
2. Php xử lý
Đoạn code này xử lý trong file functions.php
function wpshare247_handle_attachment($file_handler, $post_id, $set_thu=false){ if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) __return_false(); require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); $attach_id = media_handle_upload( $file_handler, $post_id ); return $attach_id; }
Hàm media_handle_upload giúp chúng ta tải 1 file vào thư viện Media trong kho ảnh WordPress.
Submit form để upload file trong WordPress
if(isset($_POST['action'])){ $files = $_FILES["files-upload"]; $post_id = 0; if($files){ foreach ($files['name'] as $key => $value) { if ($files['name'][$key]) { $size = $files['size'][$key]; $fname = $files['name'][$key]; $file = array( 'name' => $fname, 'type' => $files['type'][$key], 'tmp_name' => $files['tmp_name'][$key], 'error' => $files['error'][$key], 'size' => $size ); $_FILES = array ("files-upload" => $file); foreach ($_FILES as $file => $array) { $attach_id = wpshare247_handle_attachment($file, $post_id); } } } } }
Để kiểm tra chức năng hoạt động tốt hay chưa. Bạn đăng nhập WordPress, nhấp vào menu Media kiểm tra một lần nữa nhé.
Hi vọng bài viết này giúp bạn giải quyết được vấn đề đang xử lý.
CHƯƠNG TRÌNH GIẢM 50% GIÁ TẤT CẢ CÁC GÓI HOSTING WORDPRESS => Link giảm 50%