أنا أستخدم wp_nav_menu وأحاول إنشاء إخراج مخصص للقوائم المنسدلة ذات المستوى الفرعي. صادفت حجة "items_wrap" ، لكن في الحقيقة لا يوجد الكثير من المعلومات حول ماهية هذه الطريقة وكيف تعمل ونوع الأشياء التي يمكن القيام بها.
ما هو بالضبط هو "٪ 1 $ s " و "٪ 2 $ s "؟ (هل يمكن لأي شخص أن يشرح ذلك بعبارات للشخص العادي؟)
المعلمة 'items_wrap'
الافتراضية لـ wp_nav_menu()
هي:
'<ul id="%1$s" class="%2$s">%3$s</ul>'
هذا a القالب الذي يتم تحليله مع 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 و 2 هو مجرد ناتج مختلف.