2012-04-18 18 views
7

के लिए सरल उपयोगकर्ता भूमिकाएं कैसे सेट करें मैं वर्डप्रेस का उपयोग कर temps/part-timers के लिए सिस्टम पर काम कर रहा हूं। इस मैं एक नए कस्टम पोस्ट प्रकार कर्मचारी बना रहा हूं और मैं 2 इसी उपयोगकर्ताओं एजेंट और ग्राहक इसके लिए जरूरत के बारे में जाने के लिए:वर्डप्रेस कस्टम पोस्ट प्रकार

  • एजेंट उपयोगकर्ता बना सकते हैं और संपादित अपने ही कर्मचारी (s), लेकिन अन्य एजेंटों के कर्मचारी (ओं) को संपादित नहीं करते हैं।
  • कर्मचारी पद देखी और सभी एजेंटों, ग्राहकों और आम जनता द्वारा पर टिप्पणी की,
  • जो भी मतलब हो सकता है कि ग्राहक उपयोगकर्ता कर सकते हैं केवल दृश्य सभी कर्मचारी पदों।
  • ग्राहक उपयोगकर्ता को आम जनता से अलग करने की आवश्यकता है क्योंकि एक बार जब वे एक कर्मचारी को किराए पर लेते हैं, तो सिस्टम को उन्हें एम्पाली के साथ जोड़ना होगा, इस प्रकार ग्राहक को साइन-इन किए गए उपयोगकर्ता के रूप में आवश्यकता होगी।
  • अंत में, दोनों एजेंट और ग्राहक उपयोगकर्ता बना सकते हैं/संपादित कर सकते हैं अपने स्वयं के वेनिला वर्डप्रेस उपयोगकर्ता प्रोफाइल और उनके उपयोगकर्ता नाम/पासवर्ड संयोजन के साथ साइन-इन कर सकते हैं।

मैं इस व्यवस्था को कैसे कार्यान्वित करूं? उपयोगकर्ताओं और क्षमताओं पर ऑनलाइन दस्तावेज ने मुझे अपने बालों को खींच लिया और सर्कल में चारों ओर दौड़ दिया। अब तक यहाँ अपने कस्टम पोस्ट प्रकार पंजीकरण है, और मैं वर्तमान में इस पद प्रकार के लिए अन्य जानकारी के लिए मेटा बक्से सेट कर रहा हूं:

register_post_type('employee', 
    array(
     'labels' => array(
      'name' => __('Employees','tdom'), 
      'singular_name' => __('Employee','tdom'), 
      'add_new' => __('Add New'), 
      'add_new_item' => __('Add New Employee'), 
      'edit' => __('Edit'), 
      'edit_item' => __('Edit Employee'), 
      'new_item' => __('New Employee'), 
      'view' => __('View Employee'), 
      'view_item' => __('View Employee'), 
      'search_items' => __('Search Employees'), 
      'not_found' => __('No Employees found'), 
      'not_found_in_trash' => __('No Employees found in Trash'), 
      'parent' => __('Parent Employee') 
     ), 
     'public' => true, 
     'show_ui' => true, 
     'query_var' => true, 
     'menu_icon' => get_stylesheet_directory_uri() . '/images/emp_icon.png', 
     'menu_position' => 4, 
     'capability_type' => 'post', 
     'hierarchical' => false, 
     'rewrite' => true, 
     'supports' => array('title', 'thumbnail', 'author') 
    ) 
); 

मैं गूगल और मंचों पर जस्टिन Tadlock के Members प्लगइन का सामना करना पड़ा (बहुत लोकप्रिय), लेकिन मैं उम्मीद कर रहा था कि मेरी आवश्यकताएं इतनी सरल हैं कि प्लगइन का उपयोग न करें। यह मेरे सिर को चारों ओर लपेटने के लिए भी थोड़ा सा है।

सहायता। अग्रिम में धन्यवाद।

+0

मैं एक प्लगइन की सलाह दूंगा, यह जटिल है – janw

+0

** मोड के लिए नोट **: यह प्रश्न WPSE के लिए बेहतर होगा। –

उत्तर

4

यह वास्तव में बहुत मुश्किल नहीं होना चाहिए।

पहला कदम है, अपने कस्टम पोस्ट प्रकार के अनुरूप करने के लिए एक कस्टम क्षमता प्रकार बनाने के लिए 'capability_type' पैरामीटर register_post_type() के लिए पारित के माध्यम से है। आप डिफ़ॉल्ट का उपयोग कर रहे, अर्थात्:

'capability_type' => 'post', 

सेट कुछ और करने के लिए, शायद 'employee', और कोडेक्स के अनुसार, यह भी सेट कि 'map_meta_cap'true रहे हैं:

'capability_type' => 'employee', 
'map_meta_cap' => true, 

अगले कदम को जोड़ने के लिए है $capabilities पैरामीटर के माध्यम से add_role() पर आपके कॉल पर आपके कस्टम उपयोगकर्ताओं से संबंधित क्षमताओं को पारित किया गया। "कर्मचारी" उपयोगकर्ता भूमिका के लिए, आप edit_employee एट अल (एडिट_, डिलीट_ इत्यादि) और "एजेंट" उपयोगकर्ता भूमिका के लिए जोड़ना चाहेंगे, आप edit_employee एट अल, edit_others_employee एट अल के साथ शामिल करना चाहेंगे ।

+0

धन्यवाद @Chip! मैं इस पर काम करूंगा और एक बार जब मैं इसे काम करने के लिए मिलूं तो मैं आपको एक सिर दूंगा या मैं रोडब्लॉक में भाग जाऊंगा। धन्यवाद फिर से –

+0

हाय @Chip मैं अपने कोड के इस हिस्से पर फिर से काम कर रहा हूं। तो 'अखरोट प्रश्न, क्षमा करें अगर नोबिश: डी तो मैं अपना' add_role() 'कॉल कहां रखूं?पोस्ट प्रकार बनाने के बाद मेरे 'functions.php' में? tia –

+0

मैं इसे उसी कॉलबैक में डालने की अनुशंसा करता हूं जिसमें आपकी 'register_post_type() 'फ़ंक्शन कॉल शामिल है। –

संबंधित मुद्दे