3 cách cho phép user đăng bài lên WordPress

Giới Thiệu
WordPress là một nền tảng quản lý nội dung (CMS) mạnh mẽ, thường được sử dụng để tạo blog và trang web. Mặc định, chỉ những người dùng có vai trò nhất định (Ví dụ: Administrator, Editor) mới có thể đăng bài. Tuy nhiên, trong nhiều trường hợp, bạn có thể muốn cho phép người dùng khác (ví dụ: Khách, Người đăng ký) đăng bài mà không cần cấp quyền truy cập quản trị đầy đủ. Bài viết này sẽ trình bày 3 cách để thực hiện điều này.
Cách 1: Sử Dụng Vai Trò Người Dùng Mặc Định của WordPress
WordPress cung cấp một hệ thống vai trò người dùng linh hoạt. Mỗi vai trò có một tập hợp các quyền hạn cụ thể. Cách đơn giản nhất để cho phép người dùng đăng bài là thay đổi vai trò của họ thành ‘Contributor’ hoặc ‘Author’.
Vai Trò Contributor
Người dùng có vai trò ‘Contributor’ có thể:
- Viết và chỉnh sửa bài viết của riêng họ.
- Gửi bài viết để xem xét.
Tuy nhiên, người dùng ‘Contributor’ không thể:
- Xuất bản bài viết (cần phê duyệt của Editor hoặc Administrator).
- Tải lên media (hình ảnh, video).
Vai Trò Author
Người dùng có vai trò ‘Author’ có thể:
- Viết, chỉnh sửa và xuất bản bài viết của riêng họ.
- Tải lên media.
Tuy nhiên, người dùng ‘Author’ không thể:
- Chỉnh sửa bài viết của người dùng khác.
- Truy cập các tính năng quản trị hệ thống.
Cách Thay Đổi Vai Trò Người Dùng
- Đăng nhập vào trang quản trị WordPress của bạn.
- Di chuyển đến ‘Users’ -> ‘All Users’.
- Tìm người dùng mà bạn muốn thay đổi vai trò.
- Di chuột qua tên người dùng và nhấp vào ‘Edit’.
- Trong phần ‘Role’, chọn vai trò mong muốn (‘Contributor’ hoặc ‘Author’).
- Nhấp vào ‘Update User’.
Ưu điểm: Dễ thực hiện, không cần cài đặt plugin.
Nhược điểm: Hạn chế về quyền hạn, có thể không đáp ứng được nhu cầu phức tạp hơn.
Cách 2: Sử Dụng Plugin Frontend Post Submission
Có rất nhiều plugin WordPress miễn phí và trả phí cho phép người dùng đăng bài trực tiếp từ giao diện frontend (tức là trên trang web, không phải trong trang quản trị). Các plugin này thường cung cấp nhiều tính năng tùy chỉnh hơn so với việc sử dụng vai trò người dùng mặc định.
Ví Dụ Về Plugin
Một số plugin phổ biến bao gồm:
- WPForms (Phiên bản trả phí có tính năng đăng bài frontend)
- Formidable Forms (Phiên bản trả phí có tính năng đăng bài frontend)
- User Frontend (Miễn phí và trả phí)
- Gravity Forms (Phiên bản trả phí có tính năng đăng bài frontend)
Các Bước Sử Dụng Plugin
- Cài đặt và kích hoạt plugin: Tìm và cài đặt plugin bạn chọn từ kho plugin WordPress, sau đó kích hoạt nó.
- Cấu hình plugin: Mỗi plugin có giao diện cấu hình riêng. Thường thì bạn sẽ cần tạo một form để người dùng nhập thông tin bài viết (tiêu đề, nội dung, v.v.).
- Đặt quyền: Cấu hình plugin để xác định ai có thể đăng bài (ví dụ: tất cả khách truy cập, chỉ người dùng đã đăng ký).
- Nhúng form vào trang: Sao chép shortcode hoặc sử dụng widget của plugin để nhúng form vào trang hoặc bài viết mà bạn muốn người dùng có thể đăng bài.
Tính Năng Thường Gặp Của Plugin
- Tùy chỉnh form: Cho phép bạn tạo các trường nhập liệu tùy chỉnh (ví dụ: trường chọn danh mục, trường tải ảnh).
- Quản lý bài viết: Cho phép bạn xem xét, chỉnh sửa và xuất bản các bài viết do người dùng gửi.
- Thông báo: Gửi thông báo cho người dùng khi bài viết của họ được đăng hoặc bị từ chối.
- Bảo mật: Cung cấp các biện pháp bảo mật để ngăn chặn spam và các hành vi độc hại.
Ưu điểm: Linh hoạt, nhiều tính năng tùy chỉnh, dễ sử dụng cho người dùng cuối.
Nhược điểm: Cần cài đặt và cấu hình plugin, một số plugin có thể trả phí.
Cách 3: Sử Dụng Code (Cho Người Dùng Nâng Cao)
Nếu bạn là nhà phát triển WordPress hoặc có kiến thức về lập trình, bạn có thể tự tạo một form đăng bài frontend bằng cách sử dụng code. Cách này cho phép bạn kiểm soát hoàn toàn giao diện và chức năng của form, nhưng đòi hỏi kỹ năng lập trình tốt.
Các Bước Cơ Bản
- Tạo một form HTML: Form này sẽ chứa các trường nhập liệu cho tiêu đề, nội dung, và các thông tin khác của bài viết.
- Sử dụng PHP để xử lý dữ liệu form: Khi người dùng gửi form, PHP sẽ lấy dữ liệu và tạo một bài viết mới trong WordPress.
- Sử dụng các hàm WordPress: Sử dụng các hàm WordPress như
wp_insert_post()
để tạo bài viết vàwp_handle_upload()
để xử lý việc tải lên media. - Thêm chức năng bảo mật: Quan trọng để ngăn chặn spam và các hành vi độc hại (ví dụ: sử dụng nonce, lọc dữ liệu).
Ví Dụ Code (Cơ Bản)
Lưu ý: Đoạn code này chỉ là một ví dụ đơn giản và có thể cần điều chỉnh để phù hợp với nhu cầu cụ thể của bạn. Hãy cẩn thận khi sử dụng code từ internet và đảm bảo rằng bạn hiểu rõ những gì nó làm.
“`php
$post_title,
‘post_content’ => $post_content,
‘post_status’ => ‘pending’, // Đặt trạng thái là ‘pending’ để chờ phê duyệt
‘post_author’ => get_current_user_id(), // Lấy ID của người dùng hiện tại
);
// Chèn bài viết vào WordPress
$post_id = wp_insert_post($post_data);
// Kiểm tra xem bài viết đã được tạo thành công hay chưa
if ($post_id) {
echo ‘
Bài viết của bạn đã được gửi thành công và đang chờ phê duyệt.
‘;
} else {
echo ‘
Có lỗi xảy ra khi gửi bài viết. Vui lòng thử lại.
‘;
}
}
?>
“`
Giải thích:
- Hàm
sanitize_text_field()
được sử dụng để làm sạch tiêu đề bài viết. - Hàm
wp_kses_post()
được sử dụng để làm sạch nội dung bài viết, cho phép sử dụng một số thẻ HTML cơ bản. post_status
được đặt thành'pending'
để bài viết cần được phê duyệt trước khi được xuất bản.- Hàm
get_current_user_id()
lấy ID của người dùng hiện tại. - Hàm
wp_insert_post()
chèn bài viết vào cơ sở dữ liệu WordPress.
Ưu điểm: Kiểm soát hoàn toàn, tùy chỉnh cao.
Nhược điểm: Yêu cầu kiến thức lập trình, phức tạp hơn so với các phương pháp khác.
Kết Luận
Có nhiều cách để cho phép người dùng đăng bài lên WordPress, tùy thuộc vào nhu cầu và kỹ năng của bạn. Sử dụng vai trò người dùng mặc định là cách đơn giản nhất, nhưng hạn chế về quyền hạn. Sử dụng plugin Frontend Post Submission cung cấp nhiều tính năng tùy chỉnh hơn, nhưng cần cài đặt plugin. Sử dụng code cho phép bạn kiểm soát hoàn toàn, nhưng đòi hỏi kiến thức lập trình. Hãy chọn phương pháp phù hợp nhất với bạn.
- Tạo sales funnel chuyển đổi cao WordPress
- Xóa tùy chọn ghi nhớ đăng nhập WordPress
- Tự động thêm custom fields khi publish post WordPress
- Hướng dẫn thêm Twitter Cards vào WordPress cho người mới
- Hướng dẫn chuyển từ LiveJournal sang WordPress
- Khắc phục lỗi “Missing Temporary Folder” WordPress
- Phân trang bình luận trong WordPress từng bước