Wordpress: Настройка вывода wp_nav_menu, добавление div перед вложенным ul - PullRequest
3 голосов
/ 13 сентября 2010

Я создаю сайт, который использует мега-раскрывающееся меню стиля, стилизованное с использованием div'ов вокруг вложенного ul в подменю.

Кто-нибудь знает, как настроить выводсгенерированное Wordpress меню (wp_nav_menu) для добавления элементов div вокруг вложенного подменю ul?

Есть два параметра:

'before' => '', 'after' =>'',

но, к сожалению, они добавляют контент только перед фактической ссылкой, а не всем подменю.

Если у вас есть какие-либо указатели или вы делали это до того, как я был бы очень благодарен

Приветствия,

Дэйв

1 Ответ

11 голосов
/ 13 сентября 2010

удалось решить эту проблему!

Использовал пользовательский обходчик (который вы поместили в файл functions.php тем), как показано ниже, чтобы добавить

class Walker_Page_Custom extends Walker_Nav_Menu {
/**
 * @see Walker::start_lvl()
 * @since 2.1.0
 *
 * @param string $output Passed by reference. Used to append additional content.
 * @param int $depth Depth of page. Used for padding.
 */
function start_lvl(&$output, $depth) {
    $indent = str_repeat("\t", $depth);
    $output .= "\n$indent<div class='sub'><div class='sub-top'><!-- --></div><!--sub-left --><div class='sub-mid'><ul>\n";
}

/**
 * @see Walker::end_lvl()
 * @since 2.1.0
 *
 * @param string $output Passed by reference. Used to append additional content.
 * @param int $depth Depth of page. Used for padding.
 */
function end_lvl(&$output, $depth) {
    $indent = str_repeat("\t", $depth);
    $output .= "$indent</ul><span class='clear'><!-- --></span></div><!--sub-mid --><div class='sub-bottom'><!-- --></div><!--sub-bottom --><span class='clear'><!-- --></span></div><!--sub -->\n";
}

}

, содержащий его, и затем включить его в массив wp_nav_menu, как показано ниже

 'walker' => new Walker_Page_Custom

Надеюсь, это кому-нибудь поможет!

Дейв

...