Хук plugin_action_links_{plugin_file}

Этот хук позволяет разработчикам добавлять собственные ссылки (например, на настройки, документацию, поддержку) рядом с уже существующими действиями (например, «Активировать», «Деактивировать» и т.д.) для конкретного плагина.

Пример использования

Рассмотрим пример, как добавить ссылку на страницу настроек для вашего плагина на странице плагинов.

Пример кода

Допустим, ваш плагин называется my-awesome-plugin/my-awesome-plugin.php. Тогда вы можете использовать хук следующим образом:

add_filter( 'plugin_action_links_my-awesome-plugin/my-awesome-plugin.php', 'custom_plugin_action_links' );

/**
 * Добавление ссылки на страницу настроек в список действий плагина.
 *
 * @param array $links Текущий массив ссылок.
 * @return array Массив ссылок с добавленными ссылками.
 */
function custom_plugin_action_links( $links ) {
    $settings_link = '<a href="admin.php?page=my-awesome-plugin-settings">Настройки</a>';
    
    // Добавляем новую ссылку в начало массива ссылок
    array_unshift( $links, $settings_link );
    
    return $links;
}

Объяснение кода

  1. Хук plugin_action_links_{plugin_file}:

    • {plugin_file} — это путь к основному файлу вашего плагина относительно папки плагинов (например, my-awesome-plugin/my-awesome-plugin.php).
    • Этот фильтр позволяет модифицировать список ссылок, которые отображаются под названием плагина на странице «Плагины» в админке WordPress.
  2. Функция custom_plugin_action_links:

    • Она принимает текущий массив ссылок ($links) и добавляет к нему новую ссылку, используя array_unshift(), чтобы вставить её в начало списка.
    • В примере мы добавляем ссылку на страницу настроек плагина.
  3. Страница настроек:

    • Мы добавляем ссылку на страницу настроек плагина, которая может находиться на admin.php?page=my-awesome-plugin-settings. Ваша страница настроек должна быть зарегистрирована через WordPress API для создания административных страниц.

Пример реального использования

Допустим, вы хотите добавить несколько ссылок, таких как «Настройки», «Документация» и «Поддержка». Это можно сделать так:

add_filter( 'plugin_action_links_my-awesome-plugin/my-awesome-plugin.php', 'custom_plugin_action_links' );

function custom_plugin_action_links( $links ) {
    // Добавляем ссылку на настройки
    $settings_link = '<a href="admin.php?page=my-awesome-plugin-settings">Настройки</a>';
    
    // Добавляем ссылку на документацию
    $docs_link = '<a href="https://example.com/docs">Документация</a>';

    // Добавляем ссылку на поддержку
    $support_link = '<a href="https://example.com/support">Поддержка</a>';
    
    // Добавляем ссылки в массив
    $links[] = $settings_link;
    $links[] = $docs_link;
    $links[] = $support_link;
    
    return $links;
}

Где это может быть полезно

  1. Настройки плагина: Добавление ссылки на страницу настроек вашего плагина для удобства пользователей.
  2. Документация: Предоставление быстрого доступа к документации плагина.
  3. Поддержка: Возможность добавить ссылку на страницу поддержки, чтобы пользователи могли быстро обратиться за помощью.

Почитаем еще?: