Кстати! Про то, как кодить меню в WordPress, у меня на сайте есть видеоурок.
Получает массив объектов элементов меню. Если меню не содержит элементов, возвращает пустой массив, либо false
, если указанного меню не существует.
Функция позволяет создать нестандартные HTML-шаблоны вывода меню, например вывод в виде только ссылок (подробнее в примере ниже) или в виде нумерованного списка.
wp_get_nav_menu_items( $menu, $args = array() )
$args = array( 'nopaging' => true, 'post_type' => 'nav_menu_item', 'post_status' => 'publish', 'order' => 'ASC', 'orderby' => 'menu_order', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'update_post_term_cache' => false );
Функция возвращает массив объектов элементов меню. Например вот пример объекта для ссылки на главную страницу:
WP_Post Object ( [ID] => 5861 [post_author] => 1 [post_date] => 2014-07-20 07:54:11 [post_date_gmt] => 2014-07-20 03:54:11 [post_content] => [post_title] => Главная [post_excerpt] => [post_status] => publish [comment_status] => open [ping_status] => open [post_password] => [post_name] => %d0%b3%d0%bb%d0%b0%d0%b2%d0%bd%d0%b0%d1%8f [to_ping] => [pinged] => [post_modified] => 2014-07-23 07:39:24 [post_modified_gmt] => 2014-07-23 03:39:24 [post_content_filtered] => [post_parent] => 0 [guid] => https://misha.agency/?p=5861 [menu_order] => 1 [post_type] => nav_menu_item [post_mime_type] => [comment_count] => 0 [filter] => raw [post_category] => 0 [post_icon] => [db_id] => 5861 [menu_item_parent] => 0 [object_id] => 5861 [object] => custom [type] => custom [type_label] => Произвольно [title] => Главная [url] => https://misha.agency [target] => [attr_title] => [description] => [classes] => Array ( [0] => ) [xfn] => )
Обычно меню в WordPress всегда выводятся в виде маркированного <ul>
-списка. Это удобно, но не всегда бывает нужно. Давайте посмотрим, как можно вывести меню просто в виде ссылок.
if( $menu_items = wp_get_nav_menu_items('Меню для шапки') ) { // "Меню для шапки" - это название моего меню. Вы можете также использовать ID или ярлык $menu_list = ''; foreach ( (array) $menu_items as $key => $menu_item ) { $title = $menu_item->title; // заголовок элемента меню (анкор ссылки) $url = $menu_item->url; // URL ссылки $menu_list .= '<a href="' . $url . '">' . $title . '</a>'; } echo $menu_list; }
Вот и всё, осталось только добавить к новому меню немного CSS-стилей.
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Спасибо за статью. Очень помогла!
Весь день промаялся и вот у вас нашел решение. :)
Отлично, я рад! 🙂
Спасибо.
Миш привет, спасибо за статью, подскажи пожалуйста а как присвоить текущей странице меню на которой находишься атрибут aria-current="page"? спасибо
Привет!
что-то кроме волкера ничего в голову не приходит 🤔
Нашел
Кайф, спасибо, что поделились вашим кодом!
Вам спасибо за такой замечательный ресурс
🙏🔥
Миш дорогой, слушай а как получить класс тот что указываем в админке, как его вывести??
Могу предложить попробовать получить из мета-поля
_menu_item_classes
.