Vô hiệu hóa, chặn Delete bài viết, page cho user trong WordPress

Trang chủ Blog WORDPRESS Vô hiệu hóa, chặn Delete bài viết, page cho user trong WordPress
Vô hiệu hóa, chặn Delete bài viết, page cho user trong WordPress

Khi sử dụng nền tảng WordPress làm website cho công ty, mình hay gặp vấn đề phiền phức là các bài viết, các page hoặc contact form, users, … thường bị mất mà không biết ai xóa, thường người dùng không để ý thì họ cũng không biết là họ đã xóa hoặc lở tay xóa nhầm, có nhiều người sẽ vào admin để chỉnh sửa, thêm bớt nội dung. Vì vậy mình đã tìm cách vô hiệu hóa chức năng xóa bài viết, xóa trang, contact form, HTML Block, table, user người dùng, các đơn hàng. Để bảo đảm các nội dung sẽ không bị mất.

Bạn thêm function và file function của theme:

add_filter ('user_has_cap', 'prevent_default_theme_deletion', 10, 3);
function prevent_default_theme_deletion($allcaps, $caps, $args) {
    // print_r($allcaps); exit;
    $array = array(
        'delete_page', 
        'delete_others_page',
        'delete_published_page',
        'delete_private_page',
        'delete_post',
        'delete_others_post',
        'delete_published_post',
        'delete_private_post',
        'delete_user',
        'delete_plugin',
        'delete_role'
    );
    if ( isset( $args[0]) && ( in_array($args[0], $array ))) {
        $allcaps[ $caps[0] ] = false;
    }
    return $allcaps;
}

Vô hiệu hóa một bài viết nào đó

add_filter ('user_has_cap', 'prevent_default_theme_deletion', 10, 3);
function prevent_default_theme_deletion($allcaps, $caps, $args) {
    $post_id = 123;
    if ( isset( $args[0] ) && isset( $args[2] ) && $args[2] == $post_id && $args[0] == 'delete_post' ) {
        $allcaps[ $caps[0] ] = false;
    }
    return $allcaps;
}