Xóa Bài Viết Trên Wordpress Từ Front End


Vì một số lý do nào đó bạn không muốn người dùng truy cập vào dashboard wordpress của bạn nhưng bạn vẫn muốn để người dùng có thể xóa bài viết mà họ đã đăng tải. Có rất nhiêu plugin hỗ trợ bạn trong việc chỉnh sửa bài viết từ front end nhưng để xóa một bài viết thì ít thấy plugin hỗ trợ cho chức năng này. Và dĩ nhiên khi không có plugin thì mình phải tự viết code cho mình để người dùng có thể xóa được bài viết mà họ muốn (thật sự thì không phải xóa mất hoàn toàn bài viết mà là chuyển bài viết vào thùng rác).

Đây là function của wordpress giúp xóa bài viết với ID bài viết tương tương ứng

echo get_delete_post_link( $post->ID )

Có một vài trường hợp người dùng có thể vô tình mà nhấp chuột vào nút xóa bài viết làm cho bài viết mất tiêu mà không có cách nào có thể lấy lại được (trừ khi nhờ admin). Trong trường hợp này rất cần một lời thông báo bật ra “bạn có chắc muốn xóa bài viết này không” để người dùng biết. Nếu đúng là muốn xóa thì chỉ cần bấm “OK” còn lỡ như đó là sự vô tình thì “cancel” để hủy yêu cầu xóa bài đi.

onclick="return confirm('Bạn có chắc muốn xóa bài viết này không?')"

Bên cạnh đó một trang web khi bạn cho người dùng có thể đăng ký và viết bài thì dĩ nhiên sẽ có nhiều người sử dụng và sẽ là hậu họa nếu người này xóa bài của người kia (trong đó có bài admin viết). Vậy nên cần phải giới hạn lại ai viết bài nào thì chỉ được xóa bài viết đó (bài mình thì mình được xóa) chứ không được đụng đến bài viết của người khác.

if ($post->post_author == $current_user->ID) {

Và cuối cùng là cái code đầy đủ cho chức năng xóa bài viết trên wordpress từ front end

<?php if ($post->post_author == $current_user->ID) { ?>
<p><a onclick="return confirm('Are you SURE you want to delete this post?')" href="<?php echo get_delete_post_link( $post->ID ) ?>">Delete post</a></p>
<?php } ?>

Đăng nhận xét

0 Nhận xét