साइडबार के लिए संपादक एक्सेस दें


15

मैं साइडबार के संपादन के लिए संपादक की भूमिका का उपयोग करना चाहता हूं और यह सामग्री है। मेरे पास एक टेक्स्ट विजेट है और इस टेक्स्ट विजेट को संपादित करने के लिए उपयोगकर्ता को एक व्यवस्थापक होने की आवश्यकता है - यह बेकार है। मैं संपादक की भूमिका को अनुमति कैसे दे सकता हूं जो उसे साइडबार को संपादित करने के लिए एक्सेस देगा?


यह संबंधित हो सकता है: wordpress.stackexchange.com/questions/13413/…
इलियट

ऐसा लगता है कि मैं क्या देख रहा हूँ, लेकिन मुझे कोड समझ में नहीं आ रहा है। यह एक नया उपयोगकर्ता बनाने और भूमिकाएं सौंपने के बजाय एक मौजूदा उपयोगकर्ता संपादन hes की तरह लग रहा है
Howdy_McGee

जवाबों:


21

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 में लिखकर उन्हें एक्सेस करने में सक्षम हो सकते हैं।


यह एक आकर्षण की तरह काम करता है लेकिन फिर मैं उन्हें मेनू या थीम एक्सेस करने से कैसे बचा सकता हूं?
Howdy_McGee

मेरा संपादित उत्तर देखें।
इलियट

घातक त्रुटि: अपरिभाषित फ़ंक्शन हटाने के लिए कॉल करें_मेनू_पेज () - इसके अलावा, मैं उनके बारे में चिंतित नहीं हूं जो इसे URL द्वारा टाइप कर रहा है मुझे वास्तव में संदेह है कि कोई व्यक्ति दुर्भावनापूर्ण है और यहां तक ​​कि यह सिर्फ थीम और मेनू है। और मैं आपके पोस्ट को पर्याप्त रूप से +1 नहीं कर सकता! धन्यवाद!
Howdy_McGee

क्षमा करें गलत कोड जोड़ा गया है, remove_submenu_pageहालांकि आपको अभी भी घातक त्रुटि नहीं मिलनी चाहिए। मैंने अपना उत्तर संपादित किया है और परीक्षण किया है और मेरे लिए सभी काम ठीक हैं?
इलियट

1
ओह, यही कारण है कि तब केवल 3.1.0 के बाद से समर्थित था, मेरे पास अपग्रेड करने के बाद से कोई बग नहीं है ... मैं हमेशा इसे सुरक्षित रखने में मदद करने के लिए नवीनतम संस्करण में अपग्रेड करने का सुझाव दूंगा।
इलियट

1

यदि आप बस इस आसान को कॉन्फ़िगर करना चाहते हैं, तो सदस्य प्लगइन का उपयोग करें। आपको जिस क्षमता को जोड़ना होगा, वह है 'edit_theme_options'। ज्ञात हो कि यह सिर्फ विगेट्स क्षेत्र से अधिक अनुदान देगा, यह सम्पूर्ण रूप से मेनू में संपादक की पहुँच को भी अनुदान देता है। यहाँ देखें

http://wordpress.org/extend/plugins/members/

यदि आप इस प्रोग्राम को करना चाहते हैं, तो आपको add_cap () का उपयोग करना होगा।

$editor = get_role('editor');
$editor->add_cap('edit_theme_options');

आप उस कोड को अपने स्वयं के प्लगइन में, और अपने किए पर फेंक सकते हैं। या इसे functions.php में डाल दें ।


और अगर किसी ने काफी लोकप्रिय यूजर रोल एडिटर का इस्तेमाल किया है, तो आप वहां 'एडिट थीम ऑप्शन्स' / 'एडिट_टैमे_टॉप्स' भी चुन सकते हैं।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.