Wp_nav_menu () के साथ वर्तमान सक्रिय पृष्ठ को मैन्युअल रूप से कैसे निर्दिष्ट करें


9

क्या उपयोग करते समय मैन्युअल रूप से निर्दिष्ट करने का एक तरीका है कि वर्तमान में कौन सा पृष्ठ "सक्रिय" है wp_nav_menu()?

मेरे पास एक "उत्पाद" पृष्ठ है, और उस पृष्ठ पर मेरे पास विभिन्न (गतिशील) कस्टम टैक्सोनॉमीज़ के लिंक हैं। जब मैं इनमें से एक वर्गीकरण पर क्लिक करता हूं, तो मैं "उत्पाद" पृष्ठ पर रहता हूं, लेकिन wp_nav_menu()उस तथ्य के संदर्भ में खो देता हूं कि मैं अभी भी "उत्पाद" पृष्ठ पर हूं। क्या कोई ऐसा तरीका है जिससे मैं इसे ठीक कर सकता हूं?

धन्यवाद!

जॉन

जवाबों:


12

यदि आप current_page_itemकक्षा को केवल एक मेनू आइटम में जोड़ना चाहते हैं , तो आप nav_menu_css_classफ़िल्टर को हुक कर सकते हैं , और यदि आवश्यक हो तो उस वर्ग को जोड़ सकते हैं। यह तब कहा जाता है जब मेनू मुद्रित किया जाता है

यदि आप पूरे मेनू तक पहुंच चाहते हैं और wp_get_nav_menu_itemsफ़िल्टर में कक्षाएं, हुक जोड़ें , जहां आपको संपूर्ण $itemsसरणी मिलती है । आप classesव्यक्तिगत वस्तुओं के गुणों को संपादित कर सकते हैं ।


2

@ जब तक आप <body <?php body_class(); ?>>वर्डप्रेस का उपयोग कर रहे हैं तब current_page_itemतक आपके मेनू में कक्षा को असाइन कर दिया जाएगा, current_page_parentयदि आपका ड्रॉप डाउन मेनू का उपयोग कर रहा है।


1
हाय क्रिस, इस उत्तर के लिए धन्यवाद। मैं <body <; php body_class () का उपयोग कर रहा हूं; ; >> टैग, लेकिन समस्या यह है कि जहां तक ​​wp_nav_menu () का संबंध है, उस पर क्लिक करने वाले टैक्सोनोमी से संबंधित नहीं हैं! तो, मुझे wp_nav_menu () से कहना होगा - यदि पृष्ठ X है तो "उत्पाद" को current_page_parent के रूप में दिखाएं।
जॉन

0

जनवरी ने nav_menu_css_class फ़िल्टर का उल्लेख किया, इसलिए मैंने इसे देखा और यह उदाहरण मेरे लिए उपयोगी था स्रोत: https://codex.wordpress.org/Plugin_API/Filter_Reference/nav_men__css_class

function my_special_nav_class( $classes, $item ) {
    if ( is_single() && $item->title == 'Blog' ) {
        $classes[] = 'special-class';
    }
    return $classes;
}    
add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.