Không Cho User Thấy Comment Của User Khác trong WordPress
Lúc trước tôi làm một dự án có phân quyền user trong wordpress, nó liên quan đến nhiều thứ như media, category, comment, post và page. Nó rất rắc rối, đang ngồi làm tự nhiên nhơ tới mấy vụ này nên post lên mấy cái này cho bà con tham khảo.
Mặc đinh user trong wordpress ( author ) thấy được tất cả các bài viết, media, category… của các user và các thông tin chung trong wordpress. Bài này mình chỉ các bạn cách không cho user thấy các comment của user khác, bạn copy đoạn code sau đây paste vào file functions.php
add_filter('the_comments', 'wpse56652_filter_comments');
function wpse56652_filter_comments($comments){
global $pagenow;
global $user_ID;
get_currentuserinfo();
if($pagenow == 'edit-comments.php' && current_user_can('author')){
foreach($comments as $i => $comment){
$the_post = get_post($comment->comment_post_ID);
if($comment->user_id != $user_ID && $the_post->post_author != $user_ID)
unset($comments[$i]);
}
}
return $comments;
}
Mình giải thích sơ sơ qua đoạn code ở trên nhé. hàm “wpse56652_filter_comments” có chức năng lọc ra những user nào có quyền edit comment và là author, vì author có quyền thấy comemnt, sau đó dung một vòng lặp lọc ea những comment nào thuộc ID của user đó thì mới show ra. Đoạn code trên không quá khó hiểu đúng không? Có thể bạn không viết được nhưng nhìn thì có thể hiểu được.
Bài viết đa số mình viết không theo trình tự vì mình cũng khá bận, mình chỉ post mấy bài viết ngắn và thường thì nội dung đơn lẻ và ít liên quan đến nhau. Đây chủ yếu là những kinh nghiệm của mình khi code web.
Mình nghĩ những vấn đề này các bạn sẽ gặp nếu như bạn đang đi theo con đường coder. Các bạn thử đi, xem có được không?
Nếu các bạn có copy bài viết của tôi hãy nhớ để link nguồn đến tôi nhé.
Bài viết có ích cho bạn thì nhấn like ở trên giúp tôi, khuyến khích tinh thần viết bài.