Tạo trang đăng bài cho thành viên wordpress không cần plugin

Có khá nhiều bạn quan tâm đến vấn đề tạo trang đăng bài cho thành viên như ở Vnkings.Com vậy nên trong bài viết này Mình sẽ giúp các bạn tạo được 1 trang đăng bài như thế một cách đơn giản nhất. Tạo trang đăng bài cho thành viên wordpress không cần plugin Ưu điểm Tạo trang đăng bài cho thành viên wordpress không cần plugin : Dễ dàng tùy biến theo ý muốn không sử dụng quá nhiều trường không cần thiết khi đăng bài Không cần sử dụng javascript như Plugin, giúp cho Website bạn load nhẹ hơn Nhược điểm Bạn cần có 1 chút kiến thức cơ bản về html,php nếu muốn hiểu hơn về cách làm trang này. Bắt đầu nào : Đầu tiên Bạn cần tạo 1 file đăng bài: dang-bai.php Mình sẽ viết và giải thích từng phần. Sau đó sẽ có 1 file hoàn tất. – kiểm tra xem thành viên đã đăng ký hay chưa, nếu đã đăng ký thì lấy thông tin thành viên, ngược lại nếu chưa đăng ký thì hiện khung đăng nhập: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 user_level; if($vnkings <= 2) { $vnstatus = "pending"; } else { $vnstatus = "publish"; } ?> // form đăng bài
Giải thích đoạn code : Template Name: Đăng bài : Tạo template Đăng bài. if(is_user_logged_in()) { : Nếu là thành viên đăng nhập. $user_id = get_current_user_id(); : Lấy id của thành viên. $current_user = wp_get_current_user(); : Lấy tất cả thông tin thành viên. $vnkings = $current_user->user_level; : Lấy User level. if($vnkings <= 2) { $vnstatus = “pending”; } else { $vnstatus = “publish”; } : Kiểm tra user đang là quyền gì, nếu là Thành viên đăng ký thì bài viết sẽ được cho vào dạng chờ xét duyệt, nếu là Tác giả trở lên thì cho phép Public bài viết luôn. wp_login_form(); : form đăng nhập mặc định của wordpress -Thêm form đăng bài : trong form này mình đã tạo theo cấu trúc của Bootstrap cho các bạn dễ tùy biến. 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 42 43 44 45 46
get_queried_object(); wp_editor( $post_obj->post_content, 'userpostcontent', array( 'textarea_name' => 'post_content' ));?>
(.*)
s*/', $categories, $matches, PREG_SET_ORDER); echo "
n"; ?>

Hình ảnh bài viết

Giải thích đoạn code : Trong form này các bạn cần tạo các trường cơ bản như : input name=”post_title” :Nhập Tiêu đề wp_editor() :Tạo Form nội dung mặc định của WordPress wp_dropdown_categories() : Chọn danh mục cho bài viết của bạn input name=”post_tags” : Nhập tags bài viết input name=”file” : Tạo ảnh đại diện bài viết wp_nonce_field() : Bảo mật cho form bài viết, giúp chứng thực sự hoạt động của người dùng nếu form đăng bài gửi đi – Kiểm tra dữ liệu và đăng bài viết 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 wp_strip_all_tags($post_title), 'post_content' => $post_content, 'post_category' => array($post_category), 'tags_input' => $post_tags, 'post_status' => $vnstatus, 'post_type' => 'post', ); $vnkings_post_id = wp_insert_post($post); if ($_FILES) { foreach ($_FILES as $file => $array) { $newupload = insert_attachment($file,$vnkings_post_id); } } echo '
Bạn đã đăng bài thành công!
'; }?> Giải thích đoạn code : : if( $_SERVER[‘REQUEST_METHOD’] == ‘POST’ && !empty( $_POST[‘add_new_post’] ) : Khi có hành động gửi bài viết có yêu cầu là POST current_user_can(‘level_0’) : thành viên cần là thành viên đăng ký isset( $_POST[‘post_nonce_field’] ) && wp_verify_nonce( $_POST[‘post_nonce_field’], ‘post_nonce’ ): Tồn tại và xác nhận trường post_nonce_field (Bảo mật) if (isset($_POST[‘tên trường’])) : Kiểm tra đã nhập các trường bên trên hay chưa. $post = array() Tổng hợp các trường vào 1 mảng với cấu trúc của WordPress wp_insert_post($post) Tiến hành thêm bài viết với các trường đã được nhập if ($_FILES) – insert_attachment() Nếu tồn tại file ảnh thì thực hiện thêm vào ảnh đại diện Như vậy chúng ta có File dang-bai.php đầy đủ như sau : 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 user_level; if($vnkings <= 2) { $vnstatus = "pending"; } else { $vnstatus = "publish"; } ?>
get_queried_object(); wp_editor( $post_obj->post_content, 'userpostcontent', array( 'textarea_name' => 'post_content' ));?>
(.*)
s*/', $categories, $matches, PREG_SET_ORDER); echo "
n"; ?>

Hình ảnh bài viết

wp_strip_all_tags($post_title), 'post_content' => $post_content, 'post_category' => array($post_category), 'tags_input' => $post_tags, 'post_status' => $vnstatus, 'post_type' => 'post', ); $vnkings_post_id = wp_insert_post($post); if ($_FILES) { foreach ($_FILES as $file => $array) { $newupload = insert_attachment($file,$vnkings_post_id); } } echo '
Bạn đã đăng bài thành công!
'; }?>
Chưa hết, bạn cần thêm 1 đoạn Function hỗ trợ đoạn thêm ảnh đại diện bài viết ở bên trên – Thêm đoạn function này vào file Functions.php trong thư mục Theme WordPress bạn đang sử dụng: 1 2 3 4 5 6 7 8 9 10 11 function insert_attachment($file_handler,$post_id,$setthumb='false') { // check to make sure its a successful upload 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 ); if ($setthumb) update_post_meta($post_id,'_thumbnail_id',$attach_id); return $attach_id; } – Cuối cùng là bạn vào Trang quản trị > Trang > Tạo trang > Đăng bài (chọn template là Đăng bài): Tạo trang đăng bài cho thành viên wordpress không cần plugin Sau đó bạn có thể xem kết quả với link page vừa tạo Demo đăng bài vnkings : http://vnkings.com/dang-bai.html Với các bước bên trên bạn đã tạo được cho mình 1 trang đăng bài viết cho thành viên ở WordPress mà không cần sử dụng đến Plugin Chúc các bạn thành công!
SHARE

trungthan

  • Image
  • Image
  • Image
  • Image
  • Image

0 nhận xét:

Đăng nhận xét