क्या यह संभव है कि किसी अन्य कस्टम पोस्ट प्रकार उप मेनू के रूप में कस्टम पोस्ट प्रकार मेनू जोड़ें


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'); 
}  

किसी अन्य कस्टम पोस्ट प्रकार के उप-मेनू के रूप में एक कस्टम पोस्ट प्रकार जोड़ना

पृष्ठों को किसी अन्य कस्टम पोस्ट प्रकार में जोड़ने के लिए पृष्ठ के नाम के साथ पोस्ट प्रकार की क्वेरी स्ट्रिंग पैरामीटर शामिल करें।

पोस्ट टाइप एंटरटेनमेंट के तहत CPT मूवीज़ और इसके टैक्सोनॉमी शैली को जोड़ने के लिए कोड को इस तरह समायोजित करें।

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
धन्यवाद। यह काम करता हैं। लेकिन उप मेनू cpt ने अपना सबमेनू खो दिया।
अरी

मैंने टैक्सोनोमी को शामिल करने के तरीके के साथ अपना जवाब अपडेट किया है।
मिर्गी का दौरा

हाय धन्यवाद! मुझे इसे करने का तरीका मिल गया था! लेकिन हो सकता है आपका बेहतर परिणाम देगा!
अरि

show_in_menuविशेषता, मेरे लिए काम किया नहीं था।
फ्रांसिस्को कॉर्लेस मोरेल्स

दोहराने के लिए क्षमा करें। सबमेनू और पर्टन मेनू के लिए हाइलाइट रहने के लिए आपको WP को कुछ और जानकारी देने की आवश्यकता है। ठीक है, स्क्रीन पर 'my_post_type' होने पर 'show_in_menu' पैरामीटर सबमेनू को चालू / हाइलाइट करता है। अब, हमें एक और कार्रवाई करने की भी आवश्यकता है, जो मूल मेनू को उजागर करेगा। आप इसे आज़मा सकते हैं: add_filter ('parent_file', 'menu_highlight')); function menu_highlight ($ parent_file) {वैश्विक $ plugin_page, $ post_type; if ('my_post_type' == $ post_type) {$ plugin_page = 'edit.php; post_type = my_post_type'; // सबमेनू हुक नाम} रिटर्न $ parent_file; }
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);

धन्यवाद! यह मेरे लिए मददगार है।
एनएसयूकेनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.