অন্য কাস্টম পোস্ট টাইপ সাব মেনু হিসাবে কাস্টম পোস্ট টাইপ মেনু যুক্ত করা কি সম্ভব?


28

আমি বর্তমানে একটি ওয়ার্ডপ্রেস প্লাগইন বিকাশ করছি যা দুটি কাস্টম পোস্ট ধরণের ব্যবহার করছে। আমি এখানে যা জানতে চাই: অন্য কাস্টম পোস্ট টাইপের সাব মেনু হিসাবে কাস্টম পোস্ট টাইপ মেনু যুক্ত করা সম্ভব?

উত্তর:


59

হ্যাঁ। আপনি যখন নিজের পোস্টের রেজিস্ট্রেশন করেন তখন আপনাকে show_in_menuযে পৃষ্ঠায় প্রদর্শিত হবে তা সেট করতে হবে।

পোস্টের উপ-মেনু হিসাবে একটি কাস্টম পোস্ট প্রকার যুক্ত করা

এখানে আমরা পোস্টের অধীনে সাব-মেনুতে অন্তর্ভুক্ত করার জন্য "সিনেমাগুলি" পোস্ট প্রকারটি সেট করি।

register_post_type( 'movies',
    array(
            'labels' => array(
                    'name' => __( 'Movies' ),
                    'singular_name' => __( 'Movie' )
            ),
    'public' => true,
    'has_archive' => true,
    'show_in_menu' => 'edit.php'
    )
);

আপনার যদি কাস্টম পোস্টের ধরণে একটি ট্যাক্সোনমি নিবন্ধিত থাকে তবে এটি পৃষ্ঠাতেও যুক্ত করা দরকার।

ইন add_submenu_page()প্রথম আর্গুমেন্ট পৃষ্ঠাতে দায়িত্ব অর্পণ করা হয় এবং গত মেনু স্লাগ্ হয়।

add_action('admin_menu', 'my_admin_menu'); 
function my_admin_menu() { 
    add_submenu_page('edit.php', 'Genre', 'Genre', 'manage_options', 'edit-tags.php?taxonomy=genre'); 
}  

অন্য কাস্টম পোস্ট ধরণের সাব-মেনু হিসাবে একটি কাস্টম পোস্ট প্রকার যুক্ত করা

পৃষ্ঠাগুলি অন্য কাস্টম পোস্টে যুক্ত করতে পৃষ্ঠার নামের সাথে পোস্ট টাইপের ক্যোয়ারী স্ট্রিং প্যারামিটার অন্তর্ভুক্ত করুন।

পোস্ট টাইপের অধীনে সিপিটি মুভিজ এবং এর শ্রেণীবদ্ধ জেনার যুক্ত করার জন্য বিনোদন কোডটি এই জাতীয়ভাবে সামঞ্জস্য করুন।

edit.php হয়ে edit.php?post_type=entertainment

edit-tags.php হয়ে edit-tags.php?taxonomy=genre&post_type=entertainment

register_post_type( 'movies',
    array(
            'labels' => array(
                    'name' => __( 'Movies' ),
                    'singular_name' => __( 'Movie' )
            ),
    'public' => true,
    'has_archive' => true,
    'show_in_menu' => 'edit.php?post_type=entertainment'
    )
);

add_action('admin_menu', 'my_admin_menu'); 
function my_admin_menu() { 
    add_submenu_page('edit.php?post_type=entertainment', 'Genre', 'Genre', 'manage_options', 'edit-tags.php?taxonomy=genre&post_type=entertainment'); 
}

2
ওহে ধন্যবাদ. এটা কাজ করে। তবে সাব মেনু সিটিপি এটির সাবমেনু হারিয়েছে।
এরি

ট্যাক্সোনমিগুলি অন্তর্ভুক্ত করার জন্য আমি আমার উত্তরটি আপডেট করেছি।
এপ্রিলেক্ট্রিক

হাই আপনাকে ধন্যবাদ! আমি এটি করার উপায় খুঁজে পেয়েছি! তবে আপনার হতে পারে আরও ভাল ফলাফল!
এরি

show_in_menuগুণ, আমার জন্য কাজ করে নি।
ফ্রান্সিসকো মোরেলস

পুনরাবৃত্তি করার জন্য দুঃখিত। সাবমেনু এবং প্যারেন মেনুটি হাইলাইট থাকার জন্য আপনাকে ডব্লিউপিকে আরও কিছু তথ্য দিতে হবে। ঠিক আছে, যখন 'my_post_type' স্ক্রিনে থাকবে তখন 'show_in_menu' পরামিতি সাবমেনুকে বর্তমান / হাইলাইট করতে দেয়। এখন, আমাদের আরও একটি ক্রিয়া যুক্ত করা দরকার যা পিতামাতার মেনুটিকে হাইলাইট করবে। আপনি এটি চেষ্টা করতে পারেন: অ্যাড_ফিল্টার ('প্যারেন্ট_ফায়াল', 'মেনু_হাইটলাইট')); ফাংশন মেনু_হাইটলাইট ($ প্যারেন্ট_ফায়াল) {গ্লোবাল $ প্লাগইন_পেজ, $ পোস্ট_প্রকার; যদি ('my_post_type' == $ post_type) {$ প্লাগইন_পেজ = 'edit.php? post_type = আমার_পোস্ট_প্রকার'; // সাবমেনু হুকের নাম} রিটার্ন $ প্যারেন্ট_ফিল; }
TomeeNS

6

আমাদের কাস্টম পোস্ট প্রকার:

$args['show_in_menu'] = false;
register_post_type('custom_plugin_post_type', $args);

বিদ্যমান কাস্টম পোস্ট প্রকারের জন্য তাকে যুক্ত করুন (উদাহরণস্বরূপ "পণ্য"):

$existing_CPT_menu = 'edit.php?post_type=product';
$link_our_new_CPT = 'edit.php?post_type=custom_plugin_post_type';
add_submenu_page($existign_CPT_menu, 'SubmenuTitle', 'SubmenuTitle', 'manage_options', $link_our_new_CPT);

অথবা আমাদের কাস্টম প্লাগইন মেনুতে যুক্ত করুন:

// Create plugin menu
add_menu_page('MyPlugin', 'MyPlugin', 'manage_options', 'myPluginSlug', 'callback_render_plugin_menu');

// Create submenu with href to view custom_plugin_post_type
$link_our_new_CPT = 'edit.php?post_type=custom_plugin_post_type';
add_submenu_page('myPluginSlug', 'SubmenuTitle', 'SubmenuTitle', 'manage_options', $link_our_new_CPT);

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