ওয়ার্ডপ্রেস সাইটে বর্তমানে উপলভ্য ভূমিকাগুলির একটি তালিকা পাচ্ছেন?


38

ওয়ার্ডপ্রেস প্লাগইনগুলি লেখার সময় প্রায়শই বিকল্পগুলি সেটআপ করার প্রয়োজন হয় যার জন্য সাইটের ভূমিকার কিছু নির্দিষ্ট কার্যকারিতা বা সামগ্রীতে অ্যাক্সেস থাকতে পারে। এটি করার জন্য একটি প্লাগইন ডেভ অপশনটিতে ব্যবহার করার জন্য সাইটে থাকা ভূমিকার তালিকা আনতে হবে। কাস্টম ভূমিকা তৈরি করা যেতে পারে তাই আমরা ধরে নিতে পারি না যে কেবলমাত্র ডিফল্ট ভূমিকাগুলি উপলব্ধ।

তালিকাটি আনার সর্বোত্তম উপায় কী?


6
দ্রষ্টব্য: এই প্রশ্নটি প্রথমে ডাব্লুপি-হ্যাকার মেলিং তালিকায় রায়ান বিলেস্কি জিজ্ঞাসা করেছিলেন এবং আমার উত্তর দিয়েছেন। আমি এটি এখানে যুক্ত করেছি কারণ এটি সেরা অনুশীলনের প্রশ্নের একটি স্পষ্ট কেস যা লোকেরা
গুগলকে

1
আরে @ জেরেমি ক্লার্ক - এখানে আপনার অংশগ্রহণ পেয়ে সত্যিই আনন্দিত এবং এগুলি হ'ল আমরা এখানে যে ধরণের জিনিস খুঁজছি; সাধারণ প্রশ্নের সাথে সম্পর্কিত উত্তরগুলি যা সর্বোত্তম অনুশীলনগুলিও প্রকাশ করতে পারে। যশ!
মাইকস্কিঙ্কেল

উত্তর:


47

ভূমিকা গ্লোবাল ভেরিয়েবলে সংরক্ষণ করা হয় $wp_roles

আদর্শ ফাংশনget_editable_roles() থেকে/wp-admin/includes/user.php

function get_editable_roles() {
    global $wp_roles;

    $all_roles = $wp_roles->roles;
    $editable_roles = apply_filters('editable_roles', $all_roles);

    return $editable_roles;
}

"সম্পাদনাযোগ্য" অংশ, কারণ এটি অন্যান্য প্লাগিন ক্ষেত্রে কেউ অন্য তালিকা ফিল্টার করতে চেয়ে অ্যাডমিন হয়েছে একটি সুযোগ দেয় 'edit_users'বিশেষাধিকার (এবং এইভাবে 'অ্যাডমিন চাহিদা তালিকা থেকে অপসারণ করা হবে, অন্য যে ব্যবহারকারী নিজেদের অ্যাডমিন বানাতে পারে)। কাস্টম রোলগুলি তৈরি করতে ব্যবহৃত রোল ম্যানেজমেন্ট প্লাগইনগুলি সেই ফিল্টারটি ব্যবহার করবে। অন্যথায় এই ফাংশনটি মূলত get_roles() (যা বিদ্যমান নেই)

সম্ভবত আপনার প্লাগইনটি এমন কাউকে প্রশ্নে সেটিংস পৃষ্ঠাটি সরবরাহ করবে যার মতো অ্যাডমিন-স্তরের ক্ষমতা রয়েছে 'manage_options'এবং মূলত সকল ভূমিকাতে অ্যাক্সেস সহ একজন প্রশাসক, সুতরাং ফিল্টারটি আপনাকে প্রভাবিত করবে না।

এছাড়াও রয়েছেwp_dropdown_roles() যা আপনাকে তালিকার <option>ক্ষেত্র হিসাবে ভূমিকাগুলি দেয় (যদিও চেকবক্সগুলি এমন অনেক পরিস্থিতিতে উন্নততর কাজ করতে পারে যেখানে আপনি যে কোনও কিছুর অ্যাক্সেস রেখেছেন তা বেছে নিচ্ছেন)<select>


3
দ্রষ্টব্য: আমি ডাব্লুপিপি আরও সুরক্ষিত করার জন্য এই
প্যাচটির

14

এটা চেষ্টা কর:

function get_role_names() {

global $wp_roles;

if ( ! isset( $wp_roles ) )
    $wp_roles = new WP_Roles();

return $wp_roles->get_names();
}

পিএস হেই, সেই ব্যাখ্যাটি মিস করলেন এবং উত্তর দিন, খুব দ্রুত আমাকে :)


0

কোনও প্লাগইন বা ফাংশন ছাড়াই আপনি কীভাবে ভূমিকার তালিকাটি পেতে পারেন তা এখানে রয়েছে http://screencast.com/t/uaWsGLAR3Sh


6
যদিও এই লিঙ্কটি প্রশ্নের উত্তর দিতে পারে, উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত পৃষ্ঠাগুলি পরিবর্তিত হলে লিঙ্ক-শুধুমাত্র উত্তরগুলি অবৈধ হতে পারে।
গ্যাব্রিয়েল

0

যাদের বহুভাষিক সাইট রয়েছে তাদের জন্য ফাংশন করুন

function wp_roles_array() {
    $editable_roles = get_editable_roles();
    foreach ($editable_roles as $role => $details) {
        $sub['role'] = esc_attr($role);
        $sub['name'] = translate_user_role($details['name']);
        $roles[] = $sub;
    }
    return $roles;
}

স্থানীয়ভাবে তৈরি অ্যারেটিকে এইভাবে প্রদান করে (ভূমিকাটির নাম স্লোভাক ভাষায় রয়েছে):

Array
(
    [0] => Array
        (
            [role] => administrator
            [name] => Administrátor
        )

    [1] => Array
        (
            [role] => editor
            [name] => Editor
        )

    [2] => Array
        (
            [role] => author
            [name] => Autor
        )

    [3] => Array
        (
            [role] => contributor
            [name] => Prispievateľ
        )
)

0

ওয়ার্ডপ্রেসে সমস্ত বিদ্যমান ব্যবহারকারীর ভূমিকা এবং প্রতিটি ভূমিকার জন্য ক্ষমতাগুলি কীভাবে পাবেন। আপনি যদি এটি স্ক্রিনে মুদ্রণ করতে না চান তবে সর্বশেষ লাইনটি বাদ দিন। লাইন 2 এ les রোলগুলি ভেরিয়েবল ব্যবহারকারী এবং দক্ষতার অ্যারে ধরে রাখবে যাতে আপনি এটি প্রয়োজন তবে এটি ব্যবহার করতে পারেন। ফিরে আসা অ্যারের উদাহরণের জন্য নীচে দেখুন।

global $wp_roles;
$roles = $wp_roles->roles; 

// print it to the screen
echo '<pre>' . print_r( $roles, true ) . '</pre>';
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.