जवाबों:
इसे अपने विषय में जोड़ें functions.php
:
// add editor the privilege to edit theme
// get the the role object
$role_object = get_role( 'editor' );
// add $cap capability to this role object
$role_object->add_cap( 'edit_theme_options' );
WP_Role
admin_init
और केवल बेहतरif !$role_object->has_cap('edit_theme_options')
EDIT: WP 4.9 के लिए अद्यतन और संपादक के लिए केवल मेनू आइटम छिपा रहा है
यदि आप चाहते हैं कि आपके उपयोगकर्ता नेविगेशन मेनू को बदलने में सक्षम हों, लेकिन उपस्थिति के तहत अन्य विकल्प नहीं: इसका उपयोग करें
// Do this only once. Can go anywhere inside your functions.php file
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
आप अपने व्यवस्थापक पैनल को रिफ्रेश करने के बाद इस पूरे कोड को कमेंट कर सकते हैं, क्योंकि उपरोक्त कोड डेटाबेस में लगातार बदलाव करेगा।
अब आपके पास संपादकों को दिखाई देने वाले सभी विकल्प हैं। आप अन्य विकल्पों को छिपा सकते हैं जैसे:
function hide_menu() {
if (current_user_can('editor')) {
remove_submenu_page( 'themes.php', 'themes.php' ); // hide the theme selection submenu
remove_submenu_page( 'themes.php', 'widgets.php' ); // hide the widgets submenu
remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php' ); // hide the customizer submenu
remove_submenu_page( 'themes.php', 'customize.php?return=%2Fwp-admin%2Ftools.php&autofocus%5Bcontrol%5D=background_image' ); // hide the background submenu
// these are theme-specific. Can have other names or simply not exist in your current theme.
remove_submenu_page( 'themes.php', 'yiw_panel' );
remove_submenu_page( 'themes.php', 'custom-header' );
remove_submenu_page( 'themes.php', 'custom-background' );
}
}
add_action('admin_head', 'hide_menu');
hide_menu()
फ़ंक्शन में अंतिम 3 पंक्तियां मेरे विषय के लिए विशिष्ट हैं। आप व्यवस्थापक पैनल में जिस सबमेनू को छिपाना चाहते हैं, उस पर क्लिक करके आप दूसरा पैरामीटर पा सकते हैं। फिर आपका URL कुछ इस तरह होगा: example.com/wp-admin/themes.php?page= yiw_panel
तो, इस उदाहरण में, remove_submenu_page()
फ़ंक्शन के लिए दूसरा पैरामीटर होगाyiw_panel
जब मैं व्यवस्थापक मेनू संरचना को देखता हूं, तो ऐसा लगता है कि nav-menus.php
लिंक क्षमता से बंधा हुआ हैedit_theme_options
। क्या आप इस क्षमता को शामिल करने के लिए संपादक की भूमिका को संशोधित कर सकते हैं? इससे उन्हें विजेट्स को संपादित करने का विकल्प भी मिलेगा , मुझे नहीं पता कि क्या यह एक समस्या है? सभी मेनू Ajax सामान इस क्षमता द्वारा प्रतिबंधित है, इसलिए संपादन मेनू के लिए व्यवस्थापक मेनू क्षमता को बदलने से शायद काम नहीं होगा।
इंस्टाल प्लगइन "यूजर रोल एडिटर" - एडिटर्स के लिए एडिट-इंस्टाल करें - एडिट इंस्टॉल करें - एडिटर्स के लिए "विजेट्स" और "स्विच थीम" स्विच ऑन करें;
मैंने पाया है, कि आपका मेनू इस तरह काम करेगा: इंस्टाल प्लगइन " यूजर रोल एडिटर " और वहां आप संपादक की भूमिका और अन्य के लिए भी स्थिति संपादित कर सकते हैं। Edit_theme_options ON करें। लेकिन अब: आप "थीम", "विजेट" के तहत "मेनू" को देखेंगे। मेरे लिए: "मेनू" (संपादक के रूप में) पर क्लिक करने के बाद, मुझे भरे हुए विकल्प नहीं दिख रहे हैं, लेकिन खाली हैं। तो मैं प्लगइन "उपयोगकर्ता भूमिका संपादक" को निष्क्रिय कर देता हूं और "मेनू" के लिए भरे हुए विकल्प सही ढंग से दिखाई देते हैं। ध्यान दें कि प्लगइन "यूजर रोल एडिटर" को सक्रिय करने के लिए संपादक की स्थितियाँ बनी हुई हैं! मेरे लिए अच्छा है, शायद इससे आपको भी मदद मिलेगी