Wp_nav_menu के "items_wrap" तर्क के लिए कोई डॉक्स?


42

मैं wp_nav_menu का उपयोग कर रहा हूं और सब-लेवल ड्रॉप डाउन के लिए कस्टम आउटपुट बनाने की कोशिश कर रहा हूं । मैं "items_wrap" तर्क पर आया था लेकिन वास्तव में बहुत जानकारी नहीं है कि यह क्या है, यह कैसे काम करता है, और इसके साथ किस तरह की चीजें की जा सकती हैं।

वास्तव में " % 1 $ s " और " % 2 $ s " क्या है? (क्या कोई इसे आम आदमी की शर्तों में समझा सकता है?)

जवाबों:


57

पैरामीटर 'items_wrap'के लिए wp_nav_menu()करने के लिए चूक:

'<ul id="%1$s" class="%2$s">%3$s</ul>' 

यह एक खाका जिसके साथ पार्स किया गया है sprintf():

$nav_menu .= sprintf( 
    $args->items_wrap
,   esc_attr( $wrap_id )    // %1$s
,   esc_attr( $wrap_class ) // %2$s
,   $items                  // %3$s
);

गिने प्लेसहोल्डर - %1$s, %2$s, %3$s- तर्क का उल्लेख के बाद में पहला तर्क sprintf()। प्रतिशत चिह्न एक प्लेसहोल्डर को चिह्नित करता है, स्थिति और प्रकार का sमतलब है कि इसे एक स्ट्रिंग के रूप में माना जाना चाहिए।
जब तक आप वास्तव में नहीं जानते कि आप क्या करते हैं, तब तक टाइप न बदलें। :)

  • $wrap_id'menu_id'यदि आपने इसे सेट किया है, तो पैरामीटर यह है 'menu-' . $menu->slug
  • $wrap_classपैरामीटर है 'menu_class'यदि आपने इसे सेट किया है, तो यह खाली है।
  • $items मेनू की आंतरिक सामग्री की एक स्ट्रिंग है।

मान लीजिए कि आपको इसकी आवश्यकता नहीं है class। बस दूसरी स्ट्रिंग को छोड़ दें:

wp_nav_menu( array( 'items_wrap' => '<ul id="%1$s">%3$s</ul>' ) );

यदि आपको classऔर की जरूरत नहीं है id, और आप एक और कंटेनर चाहते हैं (क्योंकि आपने एक कस्टम वॉकर का इस्तेमाल किया है ):

wp_nav_menu( array( 'items_wrap' => '<div>%3$s</div>' ) );

मुख्य बिंदु यह है: आपको दिए गए प्रतिस्थापन के लिए संख्याओं का उपयोग करना होगा wp_nav_menu()%3$sहमेशा वस्तुओं की सूची है।


समझाने की कोशिश करने के लिए धन्यवाद। मैं इसे देखता हूं लेकिन यह मेरे लिए काम नहीं कर रहा है। मैं कहना चाहता हूं कि मेरे झूठे आइटमों के लिए एक वर्ग जोड़ें। आप प्रत्येक आइटम के लिए उल का उपयोग कर रहे हैं? मुझे अपने कोड में कोई स्प्रिंटफ़ दिखाई नहीं दे रहा है या तो यह स्पष्ट नहीं है।
उतरा

1
@landed यह पूरे मेनू के लिए है , प्रत्येक आइटम के लिए नहीं। कृपया हमारी खोज का उपयोग करें, आपकी समस्या के लिए हमारे पास मौजूदा समाधान हैं।
FUXIA

मैंने वेब पर खोज की थी और अन्य लोगों के पास यही मुद्दा था कि मुझे वॉकर क्लास का विस्तार करने और अपने html को जोड़ने की आवश्यकता है, इसने मेरे लिए ठीक काम किया लेकिन मुझे पुरानी कक्षा से बहुत सारे कोड कॉपी करने पड़े और उसका नाम बदलकर फिर सेट कर दिया मेरे कस्टम वॉकर वर्ग का उपयोग करने के लिए मेनू। धन्यवाद
लैंड किया

मुझे पार्टी में थोड़ी देर हो सकती है लेकिन अगर आप पाठ को पेश करना चाहते हैं तो आप items_wrapइसे कैसे करेंगे?
मेंहदी लेखक

@henrywright पहले मानों का अनुवाद करें, उन्हें स्ट्रिंग में पास करें।
FUXIA

0

क्या मैं इसे इकट्ठा करने से एक आउटपुट पकड़ लेता है और ली को मेनू नाम के साथ एक आईडी और क्लास देता है। इसलिए जब आप किसी विशेष मेनू को स्टाइल करना चाहते हैं तो आप उसकी आईडी और क्लास को पकड़ना चाहते हैं। 1 और 2 सिर्फ एक अलग आउटपुट है।

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