Когда вы создаёте собственный плагин WordPress, часто возникает необходимость добавить страницу настроек в админ-панель. Даже если плагин выполняет простую задачу, пользователю нужно где-то настраивать его параметры — и стандартным способом для этого является страница в административном меню. В этом материале разберём, как добавить страницу настроек с помощью функции add_menu_page() и создать ссылку «Settings» рядом с вашим плагином в списке установленных расширений.
Добавление страницы настроек через add_menu_page
Для создания страницы настроек в админке WordPress используется встроенная функция add_menu_page(). Она добавляет новый пункт в левое меню и создаёт страницу, на которую можно перейти при клике.
Пример структуры метода в классе плагина:
public function add_admin_menu() {
add_menu_page(
__('Settings Page', 'your-text-domain'), // Заголовок страницы
__('Plugin Name', 'your-text-domain'), // Название пункта меню
'manage_options', // Права доступа
'your_plugin_settings', // Уникальный slug страницы
[$this, 'render_admin_page'], // Callback функция
'dashicons-admin-generic', // Иконка
100 // Позиция в меню
);
}
Основные параметры:
- Page title – заголовок вкладки страницы.
- Menu title – текст ссылки в боковом меню.
- Capability – права доступа; обычно
manage_options, чтобы доступ имели только администраторы. - Menu slug – уникальный идентификатор страницы.
- Callback – функция, которая генерирует HTML контент страницы.
- Icon URL – иконка для пункта меню (используйте Dashicons).
- Position – место, где пункт появится в меню (чем выше число, тем ниже в списке).
Чтобы функция отработала, её нужно подключить через хук admin_menu:
add_action('admin_menu', [$this, 'add_admin_menu']);
Шаблон страницы настроек
Хорошей практикой является вынос HTML кода страницы настроек в отдельный файл. Это улучшает структуру проекта и облегчает поддержку.
Создайте папку admin в корне плагина и добавьте туда файл welcome.php:
<!-- admin/welcome.php -->
<div class="wrap">
<h1><?php _e('Welcome to Plugin Settings', 'your-text-domain'); ?></h1>
<div class="content">
<p><?php _e('Here you can configure your plugin options.', 'your-text-domain'); ?></p>
</div>
</div>
А затем подключите этот файл в методе render_admin_page():
public function render_admin_page() {
require_once plugin_dir_path(__FILE__) . 'admin/welcome.php';
}
Теперь при переходе по созданной ссылке в меню откроется полноценная страница, где вы сможете размещать форму настроек или другой функционал.
Добавление ссылки «Settings» к плагину
Чтобы упростить пользователю доступ к странице настроек, можно добавить ссылку прямо под названием плагина в списке установленных расширений. Для этого используется фильтр plugin_action_links_{plugin_file}.
public function add_settings_link($links) {
$settings_link = '<a href="admin.php?page=your_plugin_settings">' . __('Settings', 'your-text-domain') . '</a>';
array_push($links, $settings_link);
return $links;
}
add_filter(
'plugin_action_links_' . plugin_basename(__FILE__),
[$this, 'add_settings_link']
);
После этого рядом с кнопками Deactivate и Edit появится новая ссылка Settings, ведущая прямо на страницу настроек плагина.
Оптимизация порядка отображения
Параметр позиции (position) в функции add_menu_page() помогает управлять тем, где именно появится ваш пункт меню. В WordPress стандартные блоки располагаются с шагом 5 или 10:
- Dashboard — 2
- Posts — 5
- Media — 10
- Pages — 20
- Appearance — 60
- Plugins — 65
- Users — 70
- Tools — 75
- Settings — 80
Если указать позицию 100, ваш плагин окажется ближе к концу списка. Чтобы добиться точного положения, можно экспериментировать, увеличивая или уменьшая значение на 5.
Заключение
Создание страницы настроек и добавление ссылки «Settings» — важный элемент профессиональной разработки плагинов WordPress. Такой подход делает ваш плагин удобным для пользователей и соответствует стандартам экосистемы WordPress.
Ключевые шаги:
- Используйте
add_menu_page()для регистрации страницы в админке. - Разместите HTML страницы в отдельном файле шаблона.
- Добавьте фильтр
plugin_action_links_{plugin_file}для ссылки настроек. - Настройте позицию и иконку для гармоничного отображения в меню