Будь-які документи для аргументу 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>' 

Цей шаблон aa, який аналізується 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це завжди перелік предметів.


Дякуємо за спробу пояснити. Я якось бачу це, але це не працює для мене. Я хочу додати, щоб сказати клас, до моїх елементів «li». Ви, здається, використовуєте ul для кожного товару? Я також не бачу жодного спринту в коді, тому це не зрозуміло.
приземлився

1
@landed Це для всього меню , а не для кожного пункту. Будь ласка, використовуйте наш пошук, у нас є існуючі рішення для вашої проблеми.
fuxia

Я здійснив пошук в Інтернеті, і в інших був той самий випуск, який мені потрібно було розширити прогулянковий клас і додати свій html там, для мене це нормально працювало, але мені довелося скопіювати досить багато коду зі старого класу та перейменувати його та змінити, а потім встановити меню, щоб використовувати мій власний клас ходунків. Спасибі
приземлився

Я можу трохи запізнитися на вечірку, але якби ви хотіли ввести текст, items_wrapяк би ви це зробили?
henrywright

@henrywright Спочатку перекладіть значення, передайте їх у рядок.
fuxia

0

з того, що я збираю, він отримує вихід і дає li ідентифікатор і клас з назвою меню. Тож, коли ви хочете стилізувати певне меню, ви захоплюєте його ідентифікатор і або клас, якщо ви хочете його стилізувати. 1 і 2 - це просто інший вихід.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.