नौसेना मेनू में कस्टम पोस्ट प्रकार संग्रह पृष्ठ लिंक कैसे जोड़ें?


9

मैं इसका पता नहीं लगा सकता। लगता है कि मेनू में नए बनाए गए कस्टम पोस्ट प्रकार संग्रह पृष्ठ को जोड़ने के लिए कोई चेकबॉक्स या फ़ंक्शन में समान नहीं है।

इसके अलावा लिंक सक्रिय होना चाहिए, यदि आप पृष्ठ पर हैं। यह शायद संभव नहीं है, लेकिन क्या इसके लिए कुछ प्लगइन है? मेरे प्यार के लिए, मैं इसे नहीं पा सकता :(

मुझे केवल नव मेनस में कस्टम पोस्ट टाइप आर्काइव्स नामक यह प्लगइन मिला , जो वास्तव में कुछ भी नहीं करता है, लेकिन मेनू में कस्टम लिंक जोड़ें..पूरी साइट-यूआरएल के साथ। यह सक्रिय नहीं है या बहुत गतिशील नहीं है।

मैंने सोचा था कि, शायद सबसे आसान तरीका होगा कि मैं wp_nav_menu()अपने लिंक को मैन्युअल रूप से ओवरराइड करूं और फिर $_GET"वर्तमान में सक्रिय लिंक" को नियंत्रित करने के लिए जानकारी का उपयोग करूं ।


स्टीफन के जवाब के लिए धन्यवाद करने के बाद, मैं इस समाधान के साथ समाप्त हुआ: wordpress.org/support/topic/… आशा है कि यह भविष्य में किसी की मदद करता है :)
कलल एच। वैवरास

जवाबों:


1

यह एक तरीका है जो मुझे लगता है कि काम करना चाहिए (हालांकि यह परीक्षण नहीं किया गया है)।

//Hook on to the filter for the (custom) main menu
// 'wp_list_pages' filter is a fallback, when a custom menu isn't being used 
add_filter( 'wp_list_pages', 'new_nav_menu_items' );
add_filter( 'wp_nav_menu_items', 'new_nav_menu_items' );
//Can also hook into a specific menu...
//add_filter( 'wp_nav_menu_{$menu->slug}_items', 'new_nav_menu_items' );

function new_nav_menu_items($items) {
    global $wp_query;
    $class ='';

    //Checks if we are viewing CPT 'myposttype', if so give it the 'active' class.
    if(isset($wp_query->query_vars['post_type'])&& $wp_query->query_vars['post_type']=='myposttype') 
        $class = 'current_page_item';

    //This generates the url of the CPT archive page
    $url = add_query_arg('post_type','myposttype',site_url());

    $myitem = '<li class="'.$class.'"><a href="'.$url.'">My Custom Post Type</a></li>';

    $items = $items . $myitem;
    return $items;
}

यह मेरे लिए प्रतीत नहीं होता है, समाधान का सबसे साफ होना, लेकिन मुझे किसी अन्य तरीके का पता नहीं है। अगर वहाँ है, मैं इसे देखना चाहते हैं!

अंत में, लिंक url के कस्टम आइटम लिंक को 'सुंदर' नहीं है - लेकिन आप इसे बना सकते हैं यदि आप CPT के नए स्लग (यह मानते हुए कि कस्टम पेरालिंक्स का उपयोग किया जा रहा है ....)


जवाब देने के लिए शुक्रिया। यह मूल रूप से काम करने लगता है। हालाँकि, URL के स्वरूपण के लिए कुछ ट्विकिंग की आवश्यकता होती है। और मैं उम्मीद कर रहा था कि शायद आप WP के बारे में और अधिक जानते हैं। इसलिए वर्तमान में url है: example.com/?post_type=myposttype लेकिन example.com/myposttype होना चाहिए। शायद बस $url = site_url() . 'myposttype';? और कक्षाओं को शामिल नहीं किया जा रहा है, वर्तमान में सक्रिय एक सहित।
काल एच। वैवरास

ओह क्षमा करें, नहीं देखा $class = '';। हालांकि, खिचड़ी भाषा मुझे सामान्य रूप से गतिशील रूप से मिलती है और यह भी कि काम करने के लिए वर्तमान में सक्रिय लिंक कैसे बनाया जाए?
कलल एच। वैरावास

ओह डबल सॉरी, नहीं देखा $wp_query->query_vars['post_type']=='myposttype'। मूल रूप से काम करता है। यह सुनिश्चित करने के लिए अधिक गतिशील समाधान के लिए एक अच्छा आधार है, धन्यवाद!
काल एच। वैवरास

2

वर्डप्रेस 4.4 (दिसंबर 2015) के अनुसार, कस्टम पोस्ट प्रकार संग्रह लिंक अब आधिकारिक तौर पर किसी भी तीसरे पक्ष के कोड या प्लगइन्स की आवश्यकता के बिना वर्डप्रेस कोर में समर्थित हैं ।

आप पूर्ण चर्चा के लिए पूरे Trac # 16075 टिकट या अतिरिक्त लेबल के सारांश के लिए वर्डप्रेस कोर पोस्ट पढ़ सकते हैं ।

सक्षम करने के लिए नए निर्मित संग्रह मेनू लिंक के लिए समर्थन, कस्टम पोस्ट प्रकार के लिए गैर falsey (यानी सच है) के लिए मूल्यों के साथ पंजीकृत has_archive, publicly_queryableऔर show_in_nav_menus:

add_action( 'init', function () {
    register_post_type( 'movies',
        array(
            'labels' => array(
                'name' => __( 'Movies' ),
                'singular_name' => __( 'Movie' ),
                'archives' => __( 'Movies' ),
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array(
                'slug' => 'movies',
            ),
        )
    );
});

इन परिवर्धन के साथ, आपको Appearance> Menus admin स्क्रीन पर एक नया मेटाबॉक्‍स दिखाई देगा ।

पोस्ट प्रकार संग्रह लिंक लिंक पोस्ट मेटाबॉक्स के भीतर 'व्यू ऑल' टैब के तहत पाया जा सकता है:

वर्डप्रेस कस्टम पोस्ट प्रकार पुरालेख नव मेनू लिंक

नोट: आपको "स्क्रीन विकल्प" ड्रॉअर को टॉगल करने और यह सुनिश्चित करने की आवश्यकता हो सकती है कि आपका "पोस्ट टाइप आर्काइव्स" नाम (उदाहरण के लिए मूवीज़) चेक किया गया है ताकि उसे मेनुस स्क्रीन पर प्रदर्शित किया जा सके।

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