В одном из проектов на Wordpress захотелось реализовать микроразметку меню schema.org. Долго искал рабочий код, который можно вставить в то место, где будет выводится меню. Удобство такого подхода в том, что не нужно менять стандартный вывод меню. Если вы хоть немного умеете читать php, то без проблем разберетесь, как все устроено. <?
// Заносим меню в переменную, отключая вывод меню, чтобы дальше с ней работать. Также сразу присваиваем врапперу атрибуты разметки.
$temp_menu = wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu', 'echo' => false, 'items_wrap' => '<ul id="%1$s" class="%2$s" itemscope itemtype="http://www.schema.org/SiteNavigationElement">%3$s</ul>', ));
$temp_menu = str_replace("<a", "<a itemprop='url' ", $temp_menu); // Ставим атрибут для пунктов меню через замену
preg_match_all("~<a (.*?)>(.*)</a>~", $temp_menu, $matchesz); // Через регулярное выражение находим все теги "a", чтобы осуществить поиск тега "span"
foreach($