वैसे भी वर्डप्रेस मेनू पृष्ठों के माध्यम से वस्तुओं को प्रदर्शित करने के लिए जाता है, वॉकर ऑब्जेक्ट का उपयोग कर रहा है। इस मामले में इस वस्तु के लिए विशिष्ट वर्ग को Walker_Nav_Menu कहा जाता है। आप इसे wp-includes\nav-menu-template.php
में पा सकते हैं।
Walker_Nav_Menu
एक बहुत ही सरल वर्ग है। आप देख सकते हैं कि लिंक और मेन्यू स्ट्रक्चर कैसे बनाए जाते हैं। कार्य start_el
और end_el
मेनू-आइटम बनाने के लिए उपयोग किए जाते हैं। कार्य start_lvl
और end_lvl
घोंसले मेनू के लिए हैं। इस दृष्टिकोण में हम मुख्य रूप से start_el
और end_el
का उपयोग करेंगे।
में अपने functions.php
, एक वर्ग बनाने के माता पिता वर्ग के लिए बहुत समान तरीकों के साथ Walker_Nav_Menu
विस्तार करने के लिए:
class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {
function start_el (&$output, $item, $depth = 0, $args = array(), $id = 0) {
// Copy all the start_el code from source, and modify
}
function end_el(&$output, $item, $depth = 0, $args = array()) {
// Copy all the end_el code from source, and modify
}
}
उन कार्यों में, $item
अपने मेनू आइटम, जिसके साथ आप अनुसार अतिरिक्त सामग्री को क्वेरी कर सकता है यदि आप चाहते हैं तो मौजूदा मेनू-आइटम पर। ध्यान दें कि मैंने start_lvl
और end_lvl
शामिल नहीं किया था, लेकिन इससे कोई फर्क नहीं पड़ता, क्योंकि आपकी कक्षा स्वचालित रूप से अभिभावक वर्ग विधियों का उत्तराधिकारी हो जाएगी, अगर ओवरराइट नहीं किया गया है।
फिर, अपने विषय फाइलों में, आप wp_nav_menu इस तरह कॉल कर सकते हैं: ताकि आप संशोधित कर सकते हैं क्या कोड उत्पादन होता है
wp_nav_menu(array(
'theme_location' => 'main',
'container' => false,
'menu_id' => 'nav',
'depth' => 1,
// This one is the important part:
'walker' => new Custom_Walker_Nav_Menu
));
वर्डप्रेस, अपने कस्टम वर्ग और कार्यों का प्रयोग करेंगे।
मुझे पता चला कि कस्टम वॉकर का उपयोग करने से बहुत कम कोड के साथ इसे कैसे किया जाए: http://stackoverflow.com/questions/26079190/add-featured-image-to-wp-nav-menu-items/26079191 –
बिवेटिन टॉप लेवल हेडिन और अन्य शीर्षक में अंतर कैसे बताना है? शीर्ष स्तर तत्वों से केवल टैग को हटाना चाहते हैं ... –