Написание функций плагина

Прежде чем приступить к написанию функций для плагина, настоятельно рекомендуется дать всем файлам, функциям и переменным уникальный префикс в их названии, чтобы избежать конфликтов с другими плагинами. В нашем примере мы будем использовать префикс 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.

Была ли эта страница полезной?