কাস্টম পোস্ট প্রকারটি কেবলমাত্র সাইট প্রশাসকের ভূমিকাতে সীমাবদ্ধ করুন


17

অ্যাডমিন ব্যবহারকারীদের জন্য ড্যাশবোর্ডে প্রদর্শিত হওয়া থেকে আমি এই কাস্টম পোস্টের ধরণটি কীভাবে সরিয়ে ফেলতে পারি?

/* Add Websites Custom Post Type */
add_action( 'init', 'create_website_type' );
function create_website_type() {

    register_post_type( 'website',
        array(
            'labels' => array(
                'name' => __( 'Websites' ),
                'singular_name' => __( 'Website' ),
                'add_new' => __( 'Add New Website' ),
                'add_new_item' => __( 'Add New Website' ),
                'edit' => __( 'Edit Website' ),             
                'edit_item' => __( 'Edit Website' ),                
                'new_item' => __( 'Add New Website' ),              
                'view' => __( 'View Website' ),         
                'view_item' => __( 'View Website' ),                    
                'search_items' => __( 'Search Websites' ),  
                'not_found' => __( 'No Websites Found' ),
                'not_found_in_trash' => __( 'No Websites found in Trash' ),                                         
            ),
            'description' => __('Websites to be shown in Resources section.'),
            'public' => true,
            'show_ui' => true,
            'publicly_queryable' => true,
            'exclude_from_search' => false,
            'menu_position' => 20,
            'supports' => array('title', 'editor'),
            'can_export' => true        
        )
    ); 
    remove_post_type_support('website','editor'); 
}

উত্তর:


13

register_post_type()capabilitiesতার যুক্তিগুলিতে একটি পরামিতি গ্রহণ করে । get_post_type_capabilities()সম্ভাব্য মানগুলির জন্য দেখুন । মন্তব্য থেকে:

ডিফল্টরূপে, সাত কীগুলি সক্ষমতার অ্যারের অংশ হিসাবে গৃহীত হয়:

  • edit_post, read_postএবং delete_postহ'ল মেটা ক্ষমতা, যা সাধারণত প্রাসঙ্গিকের উপর নির্ভর করে প্রাসঙ্গিক আদি সামর্থ্যগুলিতে ম্যাপ করা হয়, যা পোস্টটি সম্পাদনা / পাঠ / মোছা এবং ব্যবহারকারী বা ভূমিকা যাচাই করা হবে be সুতরাং এই ক্ষমতা সাধারণত ব্যবহারকারী বা ভূমিকা সরাসরি দেওয়া হবে না।

  • edit_posts - এই পোস্ট ধরণের জিনিসগুলি সম্পাদনা করা যায় কিনা তা নিয়ন্ত্রণ করে।

  • edit_others_posts- অন্যান্য ব্যবহারকারীর মালিকানাধীন এই ধরণের জিনিসগুলি সম্পাদনা করা যায় কিনা তা নিয়ন্ত্রণ করে। পোস্টের প্রকারের একজন লেখক সমর্থন করে না, তাহলে এই মত আচরণ করবে edit_posts
  • publish_posts - এই পোস্ট ধরণের প্রকাশনা অবজেক্টগুলিকে নিয়ন্ত্রণ করে।
  • read_private_posts - ব্যক্তিগত জিনিসগুলি পড়া যায় কিনা তা নিয়ন্ত্রণ করে।

এই চারটি প্রাথমিক ক্ষমতা বিভিন্ন স্থানে চেক করা হয়। এছাড়াও আরও সাতটি আদিম ক্ষমতা রয়েছে যা কেবলমাত্র মূলত রেফারেন্স করা হয় না, ব্যতীত map_meta_cap(), যা তিনটি পূর্বোক্ত মেটা সক্ষমতা নেয় এবং সেগুলিকে এক বা একাধিক আদি ক্ষমতাতে অনুবাদ করে যা প্রসঙ্গের উপর নির্ভর করে ব্যবহারকারী বা ভূমিকার বিরুদ্ধে চেক করা আবশ্যক।

  • read - এই পোস্টের ধরণের অবজেক্টগুলি পড়া যায় কিনা তা নিয়ন্ত্রণ করে।
  • delete_posts - এই পোস্টের ধরণের জিনিসগুলি মোছা যায় কিনা তা নিয়ন্ত্রণ করে।
  • delete_private_posts - ব্যক্তিগত জিনিসগুলি মোছা যায় কিনা তা নিয়ন্ত্রণ করে।
  • delete_published_posts - প্রকাশিত বস্তুগুলি মোছা যায় কিনা তা নিয়ন্ত্রণ করে।
  • delete_others_posts- অন্যান্য ব্যবহারকারীর মালিকানাধীন জিনিসগুলি মোছা যায় কিনা তা নিয়ন্ত্রণ করে। পোস্টের প্রকারের একজন লেখক সমর্থন করে না, তাহলে এই মত আচরণ করবে delete_posts
  • edit_private_posts - ব্যক্তিগত জিনিসগুলি সম্পাদনা করা যায় কিনা তা নিয়ন্ত্রণ করে।
  • edit_published_posts - প্রকাশিত বস্তুগুলি সম্পাদনা করা যায় কিনা তা নিয়ন্ত্রণ করে।

এই অতিরিক্ত ক্ষমতা কেবল ব্যবহৃত হয় map_meta_cap()। সুতরাং, পোস্ট টাইপটি 'map_meta_cap'আর্গুমেন্ট true(ডিফল্ট হয় false) এর সাথে নিবন্ধিত থাকলে কেবল সেগুলি ডিফল্টরূপে নির্ধারিত হয় ।

আপনার নিবন্ধে যুক্তি যুক্ত করুন:

'capabilities' => array(
    'edit_post'          => 'update_core',
    'read_post'          => 'update_core',
    'delete_post'        => 'update_core',
    'edit_posts'         => 'update_core',
    'edit_others_posts'  => 'update_core',
    'delete_posts'       => 'update_core',
    'publish_posts'      => 'update_core',
    'read_private_posts' => 'update_core'
),

আপনি কীভাবে একই জিনিসটি করতে পারবেন তবে প্রশাসকগণ এবং সম্পাদকদের সিপিটি অ্যাক্সেস করার অনুমতি দেবেন?
urok93

@ ড্রটানজ একটি কাস্টম ক্ষমতা এবং ফিল্টার উভয়ই দিন user_has_cap। একটি উদাহরণের জন্য এই উত্তর দেখুন ।
ফুসিয়া

আপনি যেভাবে পরামর্শ দিয়েছিলেন তেমনভাবেই কি আমি এটি করতে পারি, তবে আপডেট_কোয়ারের পরিবর্তে পরিচালন_লিংক সামর্থ্য (অ্যাডমিন এবং সম্পাদকদের মধ্যে ভাগ করা) রেখে দিতে পারি?
urok93

@ ড্রটানজ হ্যাঁ, তবে আমি একটি কাস্টম ক্ষমতা ব্যবহার করব। লিঙ্ক ম্যানেজার অবশেষে অপসারণ করা হবে, এবং তারপরে নির্ধারিত দক্ষতার কী হবে তা আপনি জানেন না।
ফুসিয়া

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