wordpress добавить пункт меню в админку
add_menu_page() WP 1.5
Добавляет пункт (страницу) верхнего уровня в меню админ-панели (в один ряд с постами, страницами, пользователями и т.д.).
Используется для создания главного пункта меню в админ-панели и прикрепления к этому пункту функции, которая будет отвечать за страницу в админ-панели связанную с этим пунктом меню.
Нужно вызывать через один из хуков:
Если нужно добавить дочерний пункт меню, используйте add_submenu_page().
Если вы видите ошибку «You do not have sufficient permissions to access this page.» при попытке зайти на страницу, это значит, что вы подключаете функцию слишком рано.
Подключать функцию нужно на хуке admin_menu.
Заметки
Функция проверяет права пользователя, чтобы отобразить пункт меню и открыть доступ к странице этого пункта меню.
Пример, как разрешить Редакторам (Editor) сохранять данные:
Возвращает
Использование
Уникальное название (slug), по которому затем можно обращаться к этому меню.
Можно указать произвольную ссылку (URL), куда будет вести клик пункта меню.
Название функции, которая выводит контент страницы пункта меню.
Этот необязательный параметр и если он не указан, WordPress ожидает что текущий подключаемый PHP файл генерирует код страницы админ-меню, без вызова функции. Большинство авторов плагинов предпочитают указывать этот параметр.
Два варианта установки параметра:
Иконка для пункта меню.
Число определяющее позицию меню. Чем больше цифра, тем ниже будет расположен пункт меню.
Внимание! Если два пункта используют одинаковую цифру-позицию, один из пунктов меню может быть перезаписан и будет показан только один пункт из двух. Чтобы избежать конфликта, можно использовать десятичные значения, вместо целых чисел: 63.3 вместо 63. Используйте кавычки: «63.3».
По умолчанию, пункт меню будет добавлен в конец списка.
Список позиций для базовых пунктов меню:
По умолчанию: null (в конце списка иконок)
Примеры
#1 Пункт настройки темы
Этот пример показывает как добавить страницу настроек темы, в главное меню админ-панели WordPress.
#2 Добавление меню для администратора
Добавим пункт меню в админ-панель, который будет виден только администраторам:
Вариант 1 (только для плагинов):
В этом случае код страницы должен быть расположен в файле wp-content/plugins/myplugin/myplugin-admin.php :
#3 Добавление пункта меню, с проверкой что его еще нет
#4 Проверка наличия пункта меню или пункта подменю
Эта функция проверяет наличие пункта меню или пункта подменю по указанному идентификатору этого пункта.
add_menu_page() – создание страниц в админке WordPress
Функция добавляет элемент административного меню верхнего уровня и страницу к нему.
Читайте отдельный урок про создание страниц настроек в админке WordPress.
Возвращает хук созданной страницы, который можно использовать в других функциях, подробнее в примере 4.
Функция должна быть использована внутри одного из следующих хуков:
Если у вас возникает ошибка «Извините, вам не разрешено просматривать эту страницу» («You do not have sufficient permissions to access this page») плюс страница отображается в самом низу админ-меню, то как раз это означает, что вы подключили функцию на неправильный хук, вероятнее всего слишком рано.
Параметры
Для меню мультисайта WordPress:
Примеры использования add_menu_page()
1. Обычный пример
Если вы не знаете, куда вставлять код, рекомендую почитать это.
2. Произвольная SVG-иконка
Рассмотрим это на примере набора иконок Font Awesome. Пошагово:
В результате получаем классную иконку:
3. Меню мультисайта
4. Использование класса при создании страницы меню
В этом примере решил собрать для вас сразу разные полезности.
Также рекомендую свой видеокурс по созданию темы WordPress на основе готовой вёрстки.
Видеоурок
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!
MnogoBlog
как создать сайт на wordpress, настроить и оптимизировать wordpress
Добавляем пункты меню в админку wordpress (без плагинов)
Здравствуйте, сегодня поговорим о том, как добавить новый пункт меню в панели управления wordpress (админке) без использования плагинов.
Скачать исходники для статьи можно ниже
Для этого необходимо подкорректировать файл functions.php (или же создать плагин).
Чтобы добавить пункт меню администрирование, необходимо сделать три вещи в файле functions.php:
1. Создать функцию, которая содержит код для создания меню (в примере ниже – это function my_plugin_menu).
2. Зарегистрировать функцию, использующую хук “действие” (add action) с параметром admin_menu, при этом данных хук должен располагаться выше функции, указанной в пункте 1.
3. Создать HTML для этой страницы, которая отображается при нажатии на новый пункт меню.
Вот пример кода создания пункта меню (верхнего уровня) с названием “My Plugin” (можете вставить его в файл functions.php и посмотреть, что получиться – желательно это делать на тестовом сайте, потому что сайт может сломаться):
Теперь давайте более подробно разберем данный код.
Пункт 1: функция my_plugin_menu()
Название функции может быть любым, а не только my_plugin_menu.
В данной функции мы указываем код – add_menu_page () – это стандартная функция wordpress, которая добавляет пункт меню верхнего уровня (такие же как “Панель”, “Записи”, “Медиафайлы”, “Страницы” и др., которые вы можете видеть в левом меню вашей админки ).
Кроме данной функции здесь можно также использовать и другие:
add_submenu_page() – добавляет подменю к пунктам меню верхнего уровня, то есть например: если взять пункт “Записи”, то у него есть 4 подпункта – “Все записи”, “Добавить новую”, “Рубрики” и “Метки”.
Также есть более узкие функции:
add_options_page() – добавляет подпункт в пункт “Настройки” (Параметры, Settings).
add_management_page() – добавляет подпункт в пункт “Инструменты” (Tools).
add_theme_page() – добавляет подпункт в пункт “Внешний вид” (Appearance).
Для проверки того, как работают три последних функции, можете поменять в вышеуказанном примере код add_menu_page на один из них, ну например на add_options_page.
У каждой из 5 вышеуказанных функций есть свои параметры – атрибуты:
Как видите почти все атрибуты одинаковые, давайте рассмотрим их подробнее:
page_title – это заголовок страницы, когда пункт меню активен.
menu_title – название пункта/подпункта меню.
access_level/capability – данный атрибут задает, кто сможет видеть данный пункт/подпункт меню, но он указывается не с помощью ролей пользователей, а их возможностей, например: если вы хотите указать, что данный пункт/подпункт может видеть только админ, то указывается – manage_options (управлять настройками, параметрами).
Более подробно о возможностях для каждой роли пользователей читайте тут – “codex.wordpress.org/Roles_and_Capabilities”.
file – PHP файл, который будет отвечает за отображение содержимого страницы данного пункта/подпункта меню.
[function] – функция, которая отвечает за отображение содержимого страницы данного пункта/подпункта меню.
parent – имя admin файла, который отображает меню верхнего уровня, в который вы хотите вставить подменю или файл плагина, если это подменю вдаваясь в пользовательское меню верхнего уровня. (Примеры: index.php, post.php, edit.php, themes.php, plugins.php и др.)
Пункт 2: зацепка add_action
Здесь просто идет зацепка (хук) на стандартную функцию wordpress для вывода меню – admin_menu.
То есть если wordpress выводит меню в админке, то он должен выполнить нашу функцию (в данном примере – my_plugin_menu).
Пункт 3: function my_plugin_options
Здесь у нас прописывается следующее – если вы админ, то нужно вывести следующее:
То есть предложение – “Here is where the form would go if I actually had options.” – вместо него можно написать что-нибудь на русском, а также можно использовать код php.
Пример 2 на закрепление вышеуказанного материала.
Вот более сложный пример:
Добавляет пункт верхнего уровня “Test Top Level” с 3 подпунктами в меню панели управления, а также добавляет подпункт “Test options” в пункт “Настройки” и подпункт “Test Manage” в пункт “Инструменты”.
Как добавить меню при создании плагина
Почти год назад я начинал тему создания плагина WordPress. Тогда был создан простенький плагин, который изменял заголовок статьи при выводе. В сегодняшней статье я хочу сделать еще один шаг в сторону разработки плагинов (причем, более сложных).
Как вы знаете, большинство плагинов WordPress имеют свои пункты меню в административной панели. Эти пункты меню, чаще всего, ссылаются на страницы с какими-то настройками, которые использует плагин.
Так вот в данной статье мы подробно разберемся как же создавать пункты меню (верхнего уровня, подменю своего меню или уже существующего меню).
1. Создание меню верхнего уровня
Для добавления меню верхнего уровня используется функция add_menu_page:
page_title — заголовок страницы, который попадет в теги
menu_title — название меню, которое будет отображаться в админке
capability — минимальные возможности (доступы), необходимые для того, чтобы увидеть это меню. В примерах я буду использовать ‘manage_options’. Т.е. меню будет доступно пользователю с возможностями не ниже администратора. Если вы хотите отображать это меню и редакторам, то используйте, например: ‘publish_pages’; для авторов – ‘publish_posts’; ну и т.п.
menu_slug — краткое имя для ссылки на это меню (должно быть уникальным)
function: функция, которая должна вызываться для отображения страницы для данного пункта меню (может быть имя функции и ссылка на файл, как далее в примере будет использоваться у меня ‘test-plugin/admin.php’)
icon_url — URL иконки к данному пункту меню
position — Местоположение в меню. По умолчанию, если не задавать значение этому параметру, то новый пункт меню появится внизу данной структуры меню. Чем выше будет заданное число, тем ниже будет расположен пункт меню.
Предупреждение: Если два разных пункта меню будут иметь одно и тоже значение параметра position, то один из данных пунктом может просто не отобразиться! Риск конфликта может быть уменьшен, если вместо целочисленных значений использовать десятичные.
Смотря на конкретный пример кода, можно гораздо быстрее разобраться что к чему.
Для демонстрации я создам тестовый плагин Test Plugin. Для тех, кто ни разу не создавал плагины, еще раз отсылаю на статью о создании плагина WordPress.
Как создать свое меню в админ-панели WordPress
2016-12-31 / Вр:13:38 / просмотров: 10072
Приветик!
Не верится, что наконец-то, спустя 2 года, я надумался рассказать об этом вам. Надеюсь, сегодня порадовать своих читателей и любителей WordPress.
Ведь в сегодняшней статье я расскажу, как создать свое меню в админ-панели WordPress.
Теперь, если вы будете создавать свой плагин, вы сможете сделать к нему и настройки.
Если же вы создаете тему для WordPress, вы сможете сделать дополнительные фишки и настройки.
Что ж, приступлю сразу к делу.
Для тех, кто оказался на моем блоге впервые или только недавно его посещает, рекомендую почитать статью, как сделать плагин для WordPress.
В статье увидите пример для темы. Точнее, сделаем вместе с вами настройки для темы и выведем настройки в отдельном меню в админ-панели.
Итак, нам нужен будет файл «functions.php» активной темы и весь предлагаемый код вставим в самый вверх сразу после знака « », а можно и так « ».
Как добавить меню
Для создания меню в админ-панели есть специальная функция « add_menu_page ».
Шаблон использования функции «add_menu_page»:
Описание:
Список позиций для базовых пунктов меню:
Приступим к практике.
Если вы сохраните, то в меню у вас появится еще один раздел меню «График работы»:
Теперь нужно создать функцию « grafik_rabot » для страницы «График работы», внутри которой вставим содержимое страницы.
Здесь главное не напутать с кавычками, так как php насчет одинарных и двойных кавычек очень чувствительный.
Вот так будет полностью выглядеть готовый код:
Если нужно добавить еще один раздел в меню, то для этого достаточно добавить еще одну функцию « add_menu_page », например:
Обратите внимание на разное название функции вызова страницы с содержимым. В первом случае это была функция « grafik_rabot », во втором функция « ceni ».
Вот готовый код (я заменил комментарий в коде для лучшего ориентирования):
Как бы на этом можно было и закончить статью, но хочу продолжить, так как не все возможности я раскрыл.
Как добавить подменю
Для создания подменю в админ-панели есть специальная функция « add_submenu_page ».
Шаблон использования функции «add_submenu_page»:
Описание:
Изменим пункт меню « Цены », добавим подменю « Новая цена », « Список цен ».
Вот так будет выглядеть код:
Вот результат, но мне жуть как не нравится, что дублируется название раздела «ЦЕНЫ»:
Выход из положения – использовать « remove_submenu_page »:
Строка №2 – « ceni.php » эта страница которую мы изначально прописали для цены.
Вот так будет выглядеть весь код:
Как добавить свое подменю в существующее меню
Если вы хотите добавить подменю в уже существующие по умолчанию в WordPress, то для каждого такого пункта меню существует своя функция.
Вот список:
К примеру, давайте добавим подменю «Плагин BlogGood» в меню «Настройки».