Wp_nav_menu এর "আইটেম_র্যাপ" যুক্তির জন্য কোনও ডক্স?


42

আমি wp_nav_menu ব্যবহার করছি এবং উপ-স্তরের ড্রপ ডাউনগুলির জন্য কাস্টম আউটপুট তৈরি করার চেষ্টা করছি। আমি "আইটেম_রাপ" যুক্তিটি পেরিয়ে এসেছি তবে এটি কী, এটি কীভাবে কাজ করে এবং কী ধরণের জিনিস এটি দিয়ে করা যায় সে সম্পর্কে সত্যিকার অর্থে খুব বেশি তথ্য নেই।

ঠিক কি হল " % 1 $ " এবং " % 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সর্বদা আইটেমের তালিকা।


ব্যাখ্যা করার চেষ্টা করার জন্য ধন্যবাদ। আমি এটি দেখতে বাছাই করছি তবে এটি আমার জন্য কার্যকর হচ্ছে না। আমি আমার লি আইটেমগুলিতে ক্লাস বলতে চাই to আপনি কি প্রতিটি আইটেমের জন্য উল ব্যবহার করছেন বলে মনে হচ্ছে? আমি আমার কোডটিতে কোনও স্প্রিন্টফ দেখতে পাচ্ছি না তাই এটি পরিষ্কার নয়।
অবতরণ করেছে

1
@ ল্যান্ডেড এটি পুরো আইটেমের জন্য নয়, প্রতিটি আইটেমের জন্য। দয়া করে আমাদের অনুসন্ধানটি ব্যবহার করুন, আপনার সমস্যার জন্য আমাদের কাছে বিদ্যমান সমাধান রয়েছে।
ফুসিয়া

আমি ওয়েবে অনুসন্ধান করেছি এবং অন্যদের ওয়াকার ক্লাসটি প্রসারিত করতে এবং সেখানে আমার এইচটিএমএল যুক্ত করার দরকার ছিল একই সমস্যা ছিল আমার জন্য এটি ঠিক কাজ করেছে তবে আমাকে পুরানো শ্রেণি থেকে প্রচুর কোড অনুলিপি করে নাম পরিবর্তন করতে হয়েছিল এবং সেটটি পরিবর্তন করতে হবে আমার কাস্টম ওয়াকার ক্লাসটি ব্যবহার করতে মেনু ধন্যবাদ
অবতরণ করেছে

আমি পার্টিতে কিছুটা দেরি করতে পারি তবে আপনি যদি লেখার সাথে পরিচয় করিয়ে items_wrapদিতে চান তবে আপনি এটি কীভাবে i18n করবেন?
হেনরিউইট

@ হেনরিয়াইট প্রথমে মানগুলি অনুবাদ করুন, সেগুলি স্ট্রিংয়ে দিন।
ফুসিয়া

0

আমি যা সংগ্রহ করি তা থেকে একটি আউটপুট আটকানো হয় এবং মেনু নামের সাথে লিটিকে একটি আইডি এবং শ্রেণি দেয়। সুতরাং আপনি যখন কোনও নির্দিষ্ট মেনু স্টাইল করতে চান আপনি তার আইডি এবং বা শ্রেণিটি স্টাইল করতে চান তবে তা ধরুন। 1 এবং 2 কেবল একটি আলাদা আউটপুট।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.