Làm cách nào tôi có thể cho phép Vai trò Biên tập viên thay đổi Cài đặt Chủ đề?


22

Tôi vừa thiết lập một Blog mới cho một người bạn và nghĩ rằng tốt hơn hết là không cho anh ta quyền truy cập Quản trị viên ngay lập tức để đề phòng.

Do đó, tôi đã tạo một người dùng mới là Biên tập viên.

Nhưng sau đó tôi thấy rằng người dùng này không thể thay đổi Cài đặt chủ đề như Nền và Tiêu đề.

Có cách nào dễ dàng để cho phép Vai trò Biên tập viên chỉnh sửa bất kỳ cài đặt chủ đề nào trong Twenty Ten hoặc Child of it không? Anh ấy về cơ bản có thể làm bất cứ điều gì Quản trị viên có thể làm reg. Chủ đề, thậm chí có thể thay đổi chủ đề.


2
Nhắc nhở tôi Tôi đã viết một plugin cho điều đó: Tùy chọn chủ đề cho người chỉnh sửa
fuxia

Câu trả lời:


21

bạn có thể thêm các khả năng cho vai trò biên tập bằng cách sử dụng đối tượng vai trò và add_cap từ bạn Hàm.php

<?php
   // get the the role object
   $editor = get_role('editor');
   // add $cap capability to this role object
   $editor->add_cap('edit_theme_options');
?>

bạn cũng có thể loại bỏ các khả năng:

$editor->remove_cap('delete_posts'); 

chỉ cần nhìn vào danh sách các khả năng và ý nghĩa của từng người.


3
Thật tuyệt, điều đó đã làm việc! Dành cho những người lùn: get_role('editor')->add_cap('edit_theme_options');:)
hakre

1
@hakre FYI Các bài tập biến trực tiếp như thế a()->b()sẽ không hoạt động trong các phiên bản PHP trước 5.
hitautodesturation

Vì các vai trò thường được lưu trữ trong cơ sở dữ liệu, nên các vai trò cập nhật phải được thực hiện trong một plugin và ở đó trong một móc kích hoạt / hủy kích hoạt. Không cần thiết phải chạy mã này trên mọi quy trình WordPress.
David

6

Vì đây là lần truy cập đầu tiên trên google cho câu hỏi này, tôi cảm thấy đây là nơi thích hợp để cập nhật:

Đối với tôi, tôi không thể làm cho nó hoạt động được edit_theme_options. Sau đó, tôi đọc nguồn plugin và phát hiện ra rằng nó thực sự manage_options. Va no đa hoạt động.

tl; dr:

$role_object = get_role( 'editor' );
$role_object->add_cap( 'manage_options' );

làm việc cho tôi (trong năm 2014)


Những thứ tuyệt vời ...
Abbas

Cần thêm một dòng nữa cho WP> 4.0$role_object->add_cap('customize');
Alex


1

Một plugin tuyệt vời khác là Trình soạn thảo vai trò người dùng (http://wordpress.org/extend/plugins/user-role-editor/). Nó tương tự như Thành viên, nhưng cơ bản và đơn giản hơn nhiều để sử dụng. Thêm vào đó, các nhà phát triển luôn ở bên để lắng nghe phản hồi và cung cấp hỗ trợ, nếu cần.


0

Đây là cũ, nhưng đây là một cách mới hơn bạn có thể đạt được điều này:

add_filter( 'user_has_cap',
function( $caps ) {
    if ( ! empty( $caps['edit_pages'] ) )
        $caps['edit_theme_options'] = true;
    return $caps;
} );
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.