Получать только ссылки на меню


Я создаю шаблон в HTML5. В меню навигации мне нужно реализовать что-то вроде этого

<nav>
 <a href="url1">url1</a>
 <a href="url1">url2</a>
 <a href="url1">url3</a>
 <a href="url1">url4</a>
 ...
 <a href="urln">urln</a>
</nav>

Если я использую "wp_nav_menu", он выводит

<div><ul><li><a>

Когда мне нужно просто

<a>

Есть способ получить это? Спасибо!

Author: Ivano Mercuri, 2011-11-08

2 answers

Используйте пользовательский ходок:

class WPSE_33175_Simple_Walker extends Walker
{
    public function walk( $elements, $max_depth )
    {
        $list = array ();

        foreach ( $elements as $item )
            $list[] = "<a href='$item->url'>$item->title</a>";

        return join( "\n", $list );
    }
}

...а затем вызовите wp_nav_menu() вот так:

wp_nav_menu(
    array (
        'theme_location' => 'your_registered_theme_location',
        'walker'         => new WPSE_33175_Simple_Walker,
        'items_wrap'     => '<nav>%3$s</nav>'
    )
);
 2
Author: fuxia, 2013-02-18 23:36:11

Я бы предложил использовать фильтр wp_nav_menu_items.

 0
Author: David Gard, 2011-11-08 15:52:29