Как добавить меню навигации в записи и на страницы WordPress. Wordpress вывод меню
Как добавить меню навигации в записи и на страницы WordPress
Хотели бы вы вывести меню навигации WordPress в своих записях или страницах? Обычно, ваша тема WordPress сама задает как и где выводить меню навигации. В этой статье мы покажем вам как добавить меню навигации WordPress в записи/страницы или в любое другое место на сайте.
Зачем добавлять меню навигации WordPress в записи или на странице
Меню навигации в WordPress предлагает простой способ добавления структурированного меню на вашем сайте.
Можно создавать сколько угодно меню навигации в админке WordPress, однако вывести на сайте получится только в местах, определяемых вашей темой WordPress.
Но что, если вам понадобиться добавить меню в запись или на страницу? В этом случае вам придется вручную создавать список ссылок, управлять которыми не получится так легко, как это можно делать с менюшками от WordPress.
Давайте же посмотрим как можно добавить меню навигации в записи и на страницы WordPress.
Добавляем меню навигации в записи и на страницы WordPress
Первым делом вам потребуется установить и активировать плагин Shortcode Menu.
Прежде чем начать использовать плагин, нужно будет создать меню навигации которое требуется вывести. Переходим на страницу Внешний вид » Меню для того, чтобы его создать.
Как только ваше меню будет готово, можно переходить в раздел Shortcode Menu в админке. Вы окажетесь на странице генератора шорткодов.
Сначала потребуется выбрать меню для добавленя из выпадающего списка ‘Select Menu’. Если вам нужно добавить ID или атрибут класса в меню, то здесь можно это сделать.
Далее, выбираем стиль отображения меню. По-умолчанию, ваше меню будет выводится в виде блока. Можно изменить значение на inline для того, чтобы меню выстраивалось в горизонтальную линию.
Также можно изменять цвет меню в разделе ‘Design your menu on the fly’. Плагин позволяет вам выбрать цвета фона, анкора и hover’а.
Внизу страницы генерации шорткодов вы найдете сам шорткод с опциями, выбранными ранее. Просто копируем шорткод и вставляем его в запись, на страницу или в виджет в то место, где нужно вывести ваше меню.
Плагин добавляет свое форматирование для меню, но если захочется настроить внешний вид самостоятельно, то придется делать это с помощью CSS.
Во втором столбце на странице настроек плагина вы найдете базовый сниппет CSS. Его можно использовать в качестве отправной точки для стилизации меню.
Мы надеемся, что эта статья помогла вам добавить меню навигации в ваши записи и на страницы WordPress.
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.
VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)
wp_get_nav_menu_items() - функция WordPress
Блог / Кодекс WordPress / wp_get_nav_menu_items() — позволяет получить элементы меню в виде объектовПолучает массив объектов элементов меню. Если меню не содержит элементов, возвращает пустой массив, либо 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.blog/?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.blog [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-стилей.
misha.blog
Удаление пунктов меню в админке в WordPress
Блог / WordPress / Удаление пунктов меню в админке WordPressНу предположим, что вы делаете сайт для кого-то и не хотите чтобы например пункт «Ссылки» мозолил ему глаза.
Конечно, полного отключения функционала ссылок таким образом мы не добьёмся, да и не нужно это нам, т.е. хоть элемент меню и пропадёт, страница ссылок по-прежнему будет доступна по адресу: wp-admin/link-manager.php
remove_menu_page()
Удаляет родительский элемент меню и все вложенные в него.
<?php remove_menu_page( $menu_slug ) ?> |
Функция возвращает true, если меню удалено и false, если не найдено.
Как узнать $menu_slug? Очень просто — по ссылке, тем не менее я перечислю здесь все стандартные.
- Консоль — index.php
- Записи — edit.php
- Медиафайлы — upload.php
- Ссылки — link-manager.php
- Страницы — edit.php?post_type=page
- Комментарии — edit-comments.php
- Внешний вид — themes.php
- Плагины — plugins.php
- Пользователи — users.php
- Инструменты — tools.php
- Параметры — options-general.php
Я всё ещё хочу удалить пункт меню «Ссылки», покажу это на примере:
function remove_admin_menu_items() { remove_menu_page('link-manager.php'); } add_action( 'admin_menu', 'remove_admin_menu_items' ); |
Как видите, это делается через хук, функцию разумеется можете назвать как угодно, код вставляется в functions.php активной темы.
remove_submenu_page()
Удаляет вложенный элемент меню.
<?php remove_submenu_page( $menu_slug, $submenu_slug ) ?> |
$submenu_slug — ярлык вложенного элемента меню, который вы хотите удалить, а параметр $menu_slug — это ярлык его родительского элемента.
Пожалуй, стоит перечислить все $submenu_slug стандартных пунктов меню (для тех, кто так и не разобрался).
- Главная — index.php
- Обновления — update-core.php
- Все записи — edit.php
- Добавить новую — post-new.php
- Рубрики — edit-tags.php?taxonomy=category
- Метки — edit-tags.php?taxonomy=post_tag
- Библиотека — upload.php
- Добавить новый — media-new.php
- Все ссылки — link-manager.php
- Добавить новую — link-add.php
- Рубрики ссылок — edit-tags.php?taxonomy=link_category
- Все страницы — edit.php?post_type=page
- Добавить новую — post-new.php?post_type=page
- Темы — themes.php
- Виджеты — widgets.php
- Меню — nav-menus.php
- Редактор — theme-editor.php
- Установленные — plugins.php
- Добавить новый — plugin-install.php
- Редактор — plugin-editor.php
- Все пользователи — users.php
- Добавить нового — user-new.php
- Ваш профиль — profile.php
- Все инструменты — tools.php
- Импорт — import.php
- Экспорт — export.php
- Установка сети — network.php
- Общие — options-general.php
- Написание — options-writing.php
- Чтение- options-reading.php
- Обсуждение — options-discussion.php
- Медиафайлы — options-media.php
- Приватность — options-privacy.php
- Постоянные ссылки — options-permalink.php
И небольшой пример. Сейчас мы удалим подпункт меню «Обновления».
Смотрите также
misha.blog