Функция add_options_page. Добавляем страницу настроек плагина в меню Параметры админ панели wordpress.

23464
1

В предыдущей статье рассказывалось как написать простейший плагин для wordpress буквально за 5-10 минут. Теперь попробуем добавить страницу настроек для плагина в административное меню панели wordpress.

Действие (хук) admin_menu.

В списке известных хуков wordpress имеется действие admin_menu которое используется для добавления пунктов меню в административную панель в раздел «Параметры». Это действие вызывает после того, как меню уже сформировано. Таким образом, мы можем повесить на него функцию добавления пункта меню.

Повесить функцию на событие admin_menu можно с помощью следующего кода:

где function_name — это функция которая будет исполняться после выполнения действия admin_menu. Функцию назовем CreateMyPluginMenu.

Функция добавления пункта меню в раздел «Параметры»

Название мы придумали, осталось написать код, который будет добавлять в раздел «Параметры» админки wordpress новый пункт меню, например с настройками нашего плагина.

Обычно такой пункт называют «Настройки»+»Имя плагина» или что то подобное. Если Ваш плагин называется MyBestPlugin, то пункт меню стоит назвать MyBestplugin settings или MyBestplugin options или .

Для добавления пункта меню используется функция wordpress add_options_page имеющаяя следующий синтаксис:

    add_options_page($page_title, $menu_title, $capability, $menu_slug, $function);

  • $page_title — string (строка, обязательный), заголовок страницы (тег title), которая откроется при переходе на добавляемый пункт меню.
  • $menu_title — string (строка, обязательный), название пункта меню
  • $capability — string (строка, обязательный), возможности пользователя. Этому пункту следует уделить отдельное внимание и это будет сделано чуть позже.
  • $menu_slug — string (строка, обязательный), уникальное название параметра для перехода на страницу настроек плагина. Например, если Вы присвоите этому параметру значение myplugin123 то добавляемый пункт меню настроек плагина будет иметь ссылку
    http://ВашДомен/wp-admin/options-general.php?page=myplugin123.

    Сделайте этот параметра уникальным, чтобы он не совпадал с параметрами других плагинов.

  • $function — string (строка) или callback (функция), название функции или непосредственно сама функция которая будет вызываться при переходе по ссылке данного пункта меню.

Параметр $capability в функции add_options_page

Во многих примерах, найденных в интернете в качестве данного параметра передается цифра 8, которая характеризует уровень административного доступа. Подробно по каждому уровню доступа можно посмотреть тут. Цифра с уровнем доступа преобразуется в различные роли(администратор, редактор, подписчик и т.п.). Однако как написано в документации, начиная с версии wordpress 3.0 данные уровни доступа устарели и следует использовать специальные обозначения возможностей, про которые можно почитать тут. Соответственно в параметр $capability мы должны указать возможность управления настройками плагинов которая называется manage_options и в соответствии с табличкой доступна только администратору и супер администратору системы. В итоге строка с функцией add_options_page будет выглядеть в коде как:

Функция MyPluginPageOptions которую мы указали в параметрах должна формировать страницу настроек нашего плагина, поэтому следует создать и что нибудь вывести, пускай пока пустую или просто с заголовком.

Код этой функции будет выглядеть следующим образом:

Активированный плагин и страница с настрйоками
Активированный плагин и страница с настрйоками

Теперь при переходе по ссылку настроек плагина из появившегося пункта меню будет открываться страница настроек плагина с надписью «Настройки моего плагина.»

Полный код добавления нового пункта меню для настроек Вашего плагина следующий:

Если Вы не знаете куда добавить этот код то ознакомьтесь с предыдущей статьей «Как написать плагин для wordpress за 10 минут». На сегодня все. В следующей статье попробуем добавить несколько параметров плагина и научимся их сохранять и изменять через созданную страницу настроек.

1 КОММЕНТАРИЙ

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here