Cho phép người dùng chỉ chỉnh sửa trang của họ và không ai khác


7

Chúng tôi hiện có khoảng 50 trang, mỗi trang tôi muốn một người dùng (ví dụ: bob, rob, smith) chỉ có thể chỉnh sửa 1 trang. Ví dụ: bob & smith mỗi người có trang riêng. Tôi không muốn bob có thể chỉnh sửa trang của smith. Tôi muốn bob CHỈ có thể chỉnh sửa trang của bob. Tôi không quan tâm nếu anh ta có thể xem các trang khác. Nhìn qua vai trò của người dùng, tôi không thấy cách nào hiện tại để làm điều này- Tôi chỉ thấy cách cho phép hạn chế quyền truy cập trên quy mô toàn cầu.

Có bất kỳ plugin nào của họ để giúp hạn chế quyền truy cập cho mỗi người dùng hoặc vai trò bị hạn chế trong việc chỉnh sửa các trang cụ thể và tôi chỉ có thể thêm 1 người dùng cho mỗi vai trò không? Hoặc có một cách để làm điều này với các cài đặt mặc định tôi đã bỏ lỡ.


1
Vai trò cộng tác viên chỉ cho phép chỉnh sửa bài viết của riêng mình. Hoặc bạn có thể tạo một vai trò tùy chỉnh.
Brad Dalton

Câu trả lời:



9

Bạn có thể thêm functions.phptệp này vào tệp của mình trong mẫu để cho phép người dùng chỉnh sửa các trang mà họ đã tạo và quản lý phương tiện. Chỉ cần xác định $user_id(ví dụ 27) của họ:

function add_theme_caps() {
    // to add capability to $user_id
    $user = new WP_User( $user_id );
    $user->add_cap( 'edit_pages' );
    $user->add_cap( 'edit_published_pages' );
    $user->add_cap( 'upload_files' );
}
add_action( 'admin_init', 'add_theme_caps' );

Bạn có thể tìm thấy một người dùng cụ thể $user_idtừ URL khi bạn chỉnh sửa một người dùng cụ thể từ trang quản trị Wordpress.

Xem danh sách đầy đủ các khả năng của Wordpress .

Nếu bạn muốn sửa đổi vai trò tích hợp contributorđể cho phép tất cả người dùng có contributorvai trò sửa đổi các trang họ đã tạo:

function add_theme_caps() {
    // to add capability to the role `contributor`
    $role = get_role( 'contributor' );
    $role->add_cap( 'edit_pages' );
    $role->add_cap( 'edit_published_pages' );
    $role->add_cap( 'upload_files' );
}
add_action( 'admin_init', 'add_theme_caps' );

4

Phạm vi vai trò rất mạnh mẽ, nhưng tôi nghĩ nó quá mức cho việc này. Nếu bạn đặt Bob và Smith có vai trò Tác giả (một trong những vai trò mặc định), họ sẽ chỉ có thể chỉnh sửa các bài đăng của riêng họ.


0

Bạn cũng có thể chỉ cần chỉnh sửa bảng WP. Có vẻ như phpAdmin sẽ là một cách nhanh hơn để đi.

Cái bàn là

wp_usermeta

Tìm kiếm user_id, thay đổi giá trị cho

wp_capabilities

và đặt nó thành một cái gì đó như

a:4:{s:11:"contributor";b:1;b:1;s:10:"edit_pages";b:1;s:20:"edit_published_pages";b:1;s:12:"upload_files";b:1;}

Tôi thấy http://www.unerialize.me/ là một trợ giúp để đảm bảo rằng tôi đã đăng tuần tự chính xác (và tôi hy vọng cũng có các trang web khác)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.