ভূমিকা এবং ক্ষমতা যুক্ত করার সময় আমার কোন পদক্ষেপের উচিত?


10

আমি একটি নতুন কাস্টম ভূমিকা সেট আপ করতে এবং বিদ্যমান ভূমিকার সাথে একটি নতুন সামর্থ্য সংযুক্ত করতে অ্যাড_রোল () এবং $ ভূমিকা-> অ্যাড_ক্যাপ () ব্যবহার করতে যাচ্ছি।

আমি ভাবছি এটি করার সেরা জায়গাটি কোথায়? স্পষ্টতই আমি এটি সরাসরি ভিতরেই করতে পারি ফাংশন.এফপি এবং এটি দিয়ে সম্পন্ন করা হবে। তবে এটি কি সেরা অনুশীলন? আমার কি কেবল এডমিন_ইনাইটে এটি করা দরকার? বা আমি এটা init এ করা উচিত?

আমি ফাংশন.এফপি-র ভিতরে সরাসরি ফাংশন কল বাদ দেওয়ার পরিবর্তে আরআইএন হুক ব্যবহারের সর্বোত্তম অনুশীলনগুলি সম্পর্কে কী তা পুরোপুরি নিশ্চিত নই।

আপনার ইনপুট জন্য ধন্যবাদ!

উত্তর:


10

কোনও ভূমিকা এবং দক্ষতা যুক্ত করার সময় আপনার কেবল কোড চালানো দরকার যেহেতু অ্যান্ডি যেমন ঠিক তেমন কাজ করার জন্য ব্যবহার করতে পারেন তবে কিছু ধরণের চেক যোগ করতে পারেন ঠিক তেমনই অ্যান্ডি যেমন বলেছিলেন ঠিক তেমন ব্যবহারের সময় add_roleবা ->add_capকার্যকারিতাগুলি ডাটাবেসে সংরক্ষণ করা হয়। after_setup_themeএকবার চালান, যেমন রেজিস্টার_অ্যাক্টিভেশন_হুক বা বিকল্পগুলি ব্যবহার করে:

add_action('after_setup_theme','my_add_role_function');

function my_add_role_function(){
    $roles_set = get_option('my_roles_are_set');
    if(!$roles_set){
        add_role('my_role', 'my_roleUser', array(
            'read' => true, // True allows that capability, False specifically removes it.
            'edit_posts' => true,
            'delete_posts' => true,
            'upload_files' => true 
        ));
        update_option('my_roles_are_set',true);
    }
}

এর জন্য ধন্যবাদ. এটি ঠিক যে অ্যাড_রোল বা অ্যাড_ক্যাপ সবসময়ই ডেটাবেসকে উপকৃত করে? আমি যখন সোর্স কোডটি খনন করলাম তখন মনে হয়েছিল এটি সর্বদা হয় না - যেমন: ডাব্লুপি_রোলসের বেশিরভাগ পদ্ধতিতে, যদি ($ এই-> ব্যবহার_ডিবি) পরীক্ষা করা হয়, যা আমাকে মনে করে যে ভূমিকা রাখার সম্ভাবনা রয়েছে কিনা? সর্বদা ডিবিতে সংরক্ষণ করা যাবে না।
টম অাগার 14

এছাড়াও, বিকল্পগুলি ব্যবহার করে একটি পতাকা স্থাপন করার পরিবর্তে, যা আমাকে বিশেষভাবে স্কেলেবল হিসাবে আঘাত করে না, কেবল ভূমিকাটি তৈরি করা হয়েছে কিনা তা অনুসন্ধান করার কোনও উপায় নেই? এতে ব্যর্থ হয়ে যদি ভূমিকাটি ইতিমধ্যে উপস্থিত থাকে তবে এটি পুনরায় সংজ্ঞায়িত করতে কী ক্ষতি করবে? আপনি একটি সদৃশ ভূমিকা পেতে বা এটি কেবল উপেক্ষা করবে? সক্ষমতার দিকে আবার তাকানো.এইচপিপি আমি এটি অ্যাড_রোলের নীচে দেখতে পেয়েছি: যদি (আইসেট ($ এটি-> ভূমিকা [$ ভূমিকা])) ফিরে আসে; যা মনে করে যে এটি ভূমিকার নকল করবে না যাতে কোনও ক্ষতি হয় না।
টম অাগার 14

আপনি কী বলতে চাইছেন তা নিশ্চিত নন তবে খেলাপি $use_db = true;ডাব্লুপি_রোলস ক্লাসে। এবং বিকল্পগুলি ব্যবহার করে পতাকা নির্ধারণের ক্ষেত্রে এটি একটি উদাহরণ, আপনি ব্যবহার করতে পারেন register_activation_hookতবে ধারণাটি আপনার কোডটি কেবল একবার চলবে এবং এইভাবে আপনি নিজেকে বিসর্জনের সময়টি বাঁচান।
বেন্টারনেট

আমি এটি কখনও দেখিনি, তবে এটি আমাকে আঘাত করে যে এটি একবারে প্লাগইনে ভূমিকা পরিবর্তনগুলি বোধ করা এবং তারপরে পরিবর্তনগুলি একবারে ট্রিগার করতে অ্যাক্টিভেশন / নিষ্ক্রিয়করণ হুকের সুবিধা নিতে পারে। কেউ কি কখনও সে পথে নেমেছে?
mrwweb

@ মিউরওয়েব যে ঠিক ঠিক কাজ করতে হবে
বাইনারনেট

7

প্লাগিনগুলির জন্য, আমি এটির plugins_loadedজন্য ব্যবহার করে সাফল্য পেয়েছি । থিমগুলির জন্য, আমি ব্যবহার করব after_setup_theme

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.