ฉันต้องการให้สิทธิ์บทบาท Editor เพื่อแก้ไขแถบด้านข้างและเนื้อหา ฉันมีวิดเจ็ตข้อความอยู่ในนั้นและเพื่อแก้ไขวิดเจ็ตข้อความนี้ผู้ใช้จะต้องเป็นผู้ดูแลระบบ - นี่แย่มาก ฉันจะให้สิทธิ์แก่บทบาทผู้แก้ไขที่จะทำให้เขาสามารถเข้าถึงการแก้ไขแถบด้านข้างได้อย่างไร
ฉันต้องการให้สิทธิ์บทบาท Editor เพื่อแก้ไขแถบด้านข้างและเนื้อหา ฉันมีวิดเจ็ตข้อความอยู่ในนั้นและเพื่อแก้ไขวิดเจ็ตข้อความนี้ผู้ใช้จะต้องเป็นผู้ดูแลระบบ - นี่แย่มาก ฉันจะให้สิทธิ์แก่บทบาทผู้แก้ไขที่จะทำให้เขาสามารถเข้าถึงการแก้ไขแถบด้านข้างได้อย่างไร
คำตอบ:
edit_theme_options
ความสามารถจะช่วยให้ผู้ใช้สามารถแก้ไขแถบด้านข้างตามที่อธิบายไว้ในหน้านี้:
http://codex.wordpress.org/Appearance_Widgets_SubPanel
รหัสที่จะเพิ่ม functions.php
$role = get_role('editor');
$role->add_cap('edit_theme_options');
แก้ไข:
สิ่งนี้ควรใช้เพื่อป้องกันไม่ให้เครื่องมือแก้ไขเข้าถึงธีมหรือเมนู
function custom_admin_menu() {
$user = new WP_User(get_current_user_id());
if (!empty( $user->roles) && is_array($user->roles)) {
foreach ($user->roles as $role)
$role = $role;
}
if($role == "editor") {
remove_submenu_page( 'themes.php', 'themes.php' );
remove_submenu_page( 'themes.php', 'nav-menus.php' );
}
}
add_action('admin_menu', 'custom_admin_menu');
ฉันไม่ได้มีโอกาสทดสอบสิ่งนี้ แต่เพียงลบพวกเขาออกจากเมนูที่พวกเขาอาจยังสามารถเข้าถึงได้โดยพิมพ์ URL โดยตรง
remove_submenu_page
แม้ว่าคุณจะยังไม่ได้รับข้อผิดพลาดร้ายแรง ฉันได้แก้ไขคำตอบและทดสอบแล้วและใช้ได้กับฉันทั้งหมดหรือไม่
หากคุณต้องการกำหนดค่านี้ให้ง่ายที่สุดให้ใช้ปลั๊กอินสมาชิก ความสามารถที่คุณต้องการเพิ่มคือ 'edit_theme_options' โปรดทราบว่าสิ่งนี้จะให้สิทธิ์มากกว่าพื้นที่วิดเจ็ตซึ่งเป็นการให้สิทธิ์การเข้าถึงแก่ผู้แก้ไขในเมนูลักษณะที่ปรากฏทั้งหมด ดูที่นี่
http://wordpress.org/extend/plugins/members/
หากคุณต้องการทำสิ่งนี้โดยทางโปรแกรมคุณจะต้องใช้ add_cap ()
$editor = get_role('editor');
$editor->add_cap('edit_theme_options');
คุณสามารถโยนรหัสนั้นลงในปลั๊กอินของตัวเองและของคุณเสร็จแล้ว หรือใส่ลงในfunctions.php