Прежде чем приступить к написанию функций для плагина, настоятельно рекомендуется дать всем файлам, функциям и переменным уникальный префикс в их названии, чтобы избежать конфликтов с другими плагинами. В нашем примере мы будем использовать префикс mfp
, что является сокращением от My First Plugin.
Создайте новую папку Includes в основном каталоге плагина. Мы будем использовать ее для хранения вспомогательных файлов, используемых основным файлом. В этой папке создайте PHP-файл и назовите его mfp-functions.php. Дайте ему открывающий тег <?php
в первой строке.
Этот новый файл будет содержать все функции вашего плагина.
Мы должны включить mfp-functions.php в основной файл плагина, чтобы другие файлы плагина могли использовать функции, которые он определяет. Используйте require_once
, чтобы плагин работал только при наличии файла функций.
Отредактируйте файл my-first-plugin.php, как показано ниже. Затем сохраните его и загрузите файл еще раз, перезаписав предыдущую версию при необходимости.
<?php
/*
Plugin Name: My First Plugin
Description: This is my first plugin! It makes a new admin menu link!
Author: Your Name
*/
// Подключаем mfp-functions.php, используем require_once для остановки скрипта, если mfp-functions.php не найден
require_once plugin_dir_path(__FILE__) . 'includes/mfp-functions.php';
Функция WordPress plugin_dir_path(__FILE)
позволяет включать файлы из папки плагина, указывая полный путь к директории, в которой хранится новый плагин.
Теперь вернитесь к файлу mfp-functions.php в директории Includes. Поскольку наш плагин будет добавлять новую ссылку верхнего уровня в навигационное меню панели управления администратора, мы будем использовать пользовательскую функцию mfp_Add_My_Admin_Link()
. Добавьте приведенный ниже блок кода в файл mfp-functions.php:
<?php
/*
* Добавляем мое новое меню в панель управления администратора
*/
// Перехватите хук действия 'admin_menu', запустите функцию с именем 'mfp_Add_My_Admin_Link()'
add_action( 'admin_menu', 'mfp_Add_My_Admin_Link' );
// Добавить новую ссылку меню верхнего уровня в админ панели
function mfp_Add_My_Admin_Link()
{
add_menu_page(
'My First Page', // Заголовок страницы
'My First Plugin', // Текст для отображения в ссылке меню
'manage_options', // Требования к возможностям для просмотра ссылки
'includes/mfp-first-acp-page.php' // 'slug' - файл для отображения при переходе по ссылке
);
}
mfp_Add_My_Admin_Link()
использует встроенную функцию WordPress add_menu_page() с минимум четырьмя параметрами в следующем порядке:
- Page title - заголовок страницы - название страницы, отображаемое на вкладке браузера
- Menu title - заголовок меню - текст, используемый для пункта меню, в нашем примере это название плагина
- Capability - возможности - требования к возможностям пользователя для просмотра меню плагина, в данном случае только пользователи с правами
manage_options
могут получить доступ к привязанной странице - Menu slug - файл, который будет использоваться для отображения фактической страницы, мы создадим файл mfp-first-acp-page.php в папке Includes в следующем разделе
- Function - Функция (необязательная) - функция, которая выводит содержимое страницы
Прикрепление пользовательской функции с помощью add_action()
позволяет плагину вызывать хук действия при определенных обстоятельствах. Добавление admin_menu
в качестве первого параметра вызовет функцию, когда пользователь зайдет в меню администратора. Между тем, mfp_Add_My_Admin_Link
- это функция, которая будет запущена, когда она будет указана в качестве второго параметра.
Наконец, загрузите файл плагина mfp-functions.php в папку Includes.