Bagaimana saya bisa membiarkan Peran Editor mengubah Pengaturan Tema?

22

Saya baru saja menyiapkan Blog baru untuk seorang teman dan berpikir lebih baik tidak memberinya Akses Administrator segera sebagai tindakan pencegahan.

Karena itu saya membuat pengguna baru sebagai Editor.

Tapi kemudian saya melihat bahwa pengguna ini tidak dapat mengubah Pengaturan Tema seperti Background dan Header.

Apakah ada cara mudah untuk memungkinkan Peran Editor mengedit pengaturan tema di Twenty Ten atau Child of it? Dia pada dasarnya harus bisa melakukan apa saja yang bisa dilakukan Administrator. Tema, bahkan mungkin mengubah tema.

hakre
sumber
2
Mengingatkan saya ... Saya telah menulis sebuah plugin untuk itu: Opsi tema untuk editor
fuxia

Jawaban:

21

Anda dapat menambahkan kemampuan ke peran editor menggunakan objek peran dan add_cap dari Anda functions.php

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

Anda juga dapat menghapus kemampuan:

$editor->remove_cap('delete_posts'); 

lihat saja daftar kemampuan dan apa artinya masing-masing.

Bainternet
sumber
3
Keren, itu berhasil! Untuk shorties: get_role('editor')->add_cap('edit_theme_options');:)
hakre
1
@hakre FYI Penempatan variabel langsung seperti itu a()->b()tidak akan berfungsi dalam versi PHP sebelum 5.
hitautodestruct
Karena peran biasanya disimpan dalam database, memperbarui peran harus dilakukan dalam sebuah plugin dan ada dalam kait aktivasi / deaktivasi. Tidak perlu menjalankan kode ini di setiap proses WordPress.
David
6

Karena ini adalah hit pertama di google untuk pertanyaan ini, saya merasa ini adalah tempat yang tepat untuk pembaruan:

Bagi saya, saya tidak bisa membuatnya bekerja edit_theme_options. Kemudian saya membaca sumber plugin dan mengetahui bahwa itu sebenarnya manage_options. Dan itu berhasil.

tl; dr:

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

bekerja untuk saya (pada tahun 2014)

Sebastian Schmid
sumber
Bung besar barang ...
Abbas
Perlu menambahkan satu baris lagi untuk WP> 4.0$role_object->add_cap('customize');
Alex
1

Plugin hebat lainnya adalah Editor Peran Pengguna (http://wordpress.org/extend/plugins/user-role-editor/). Ini mirip dengan Anggota, tetapi jauh lebih mendasar dan mudah digunakan. Plus, para pengembang selalu ada untuk mendengarkan umpan balik dan menawarkan bantuan, jika diperlukan.

Travis Pflanz
sumber
0

Ini sudah tua, tetapi inilah cara yang lebih baru untuk mencapai ini:

add_filter( 'user_has_cap',
function( $caps ) {
    if ( ! empty( $caps['edit_pages'] ) )
        $caps['edit_theme_options'] = true;
    return $caps;
} );
Bryan Willis
sumber