Статьи

Сделайте ваши плагины для WordPress еще более удобными для разработчиков

В прошлой статье мы рассмотрели, как Действия и Фильтры могут быть добавлены в ваши плагины WordPress, чтобы сделать их удобными для разработчиков.

Сегодня мы рассмотрим, как предоставить документацию для разработчиков.

Документирование ваших действий и фильтров

Полезно задокументировать действия и фильтры вашего плагина WordPress, чтобы разработчики могли быстро найти то, что им нужно, а также понять, что делает каждое действие и фильтр.

Комментирование кода

Как разработчики, мы вполне можем просматривать чужой код, чтобы понять, как что-то работает. Добавление комментариев DocBlock к нашим действиям и фильтрам — отличный способ объяснить, что делает конкретный вызов:

/**
 * Helper method to retrieve schedule options
 *
 * @since 3.0
 *
 * @return array Schedule Options
 */
static public function get_schedule_options() {

    // Build schedule options
    $schedule = array(
        'queue_bottom'  => __( 'Add to End of Buffer Queue', 'wp-to-buffer-pro' ),
        'queue_top'     => __( 'Add to Start of Buffer Queue', 'wp-to-buffer-pro' ),
        'now'           => __( 'Post Immediately', 'wp-to-buffer-pro' ),
        'custom'        => __( 'Custom Time', 'wp-to-buffer-pro' ),
    );

    /**
     * Returns filtered schedule options
     *
     * @since 3.0
     *
     * @param array $schedule Schedule Options
     * @return array Filtered Schedule Options
     */
    return apply_filters( 'wp_to_buffer_pro_get_schedule_options', $schedule );

}

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

 /**
* Returns an image link if the original source cannot be found.
*
* @since 1.0.0
*
* @param string $item['link'] Image Link
* @param int    $id           Image Attachment ID
* @param array  $item         Image Data
* @param array  $data         Gallery Data
* @return string              Image Link
*/
return apply_filters( 'envira_gallery_no_image_src', $item['link'], $id, $item, $data );

Онлайн документация

Наличие единой точки отсчета для всех действий и вызовов фильтров поможет разработчикам быстро найти то, что им нужно. Мы можем скопировать и вставить каждый apply_filtersdo_action

Однако, если действия и фильтры вашего плагина распределены по нескольким файлам, потребуется время, чтобы объединить все это в один документ. Нам также придется вручную повторить этот процесс, если мы когда-нибудь добавим новые действия или фильтры.

К счастью, есть плагины WordPress, которые могут помочь автоматизировать этот процесс. В частности, плагин Extract Filters and Actions позволяет нам выбрать установленный плагин WordPress и создавать HTML-таблицы действий и фильтров. Затем они могут быть скопированы в онлайн-документацию.

Для настройки Extract Filters and Actions вам понадобится установка WordPress, которая также содержит плагин, из которого вы хотите прочитать действия и фильтры.

В области администрирования WordPress перейдите к «Плагины»> «Добавить новый» и выполните поиск «Извлечь фильтры и действия». Затем нажмите « Установить сейчас» для плагина « Извлечение фильтров и действий из плагинов» :

Плагин Extract Filters and Actions

После установки активируйте плагин и начните использовать его, перейдя в «Плагины»> «Извлечь фильтры и действия»:

Установленные плагины

Есть несколько параметров для настройки перед генерацией документации:

  • Плагин: плагин WordPress для создания документации.
  • Префикс: если ваши действия и фильтры имеют префикс определенного имени (рекомендуется), вы можете ввести его здесь.
  • Включить фильтры. Чтобы включить фильтры в создаваемую документацию, установите этот флажок
  • Включить действия. Чтобы включить действия в создаваемую документацию, установите этот флажок.
  • Формат: выберите формат для вывода документации. Давайте выберем HTML.
  • Классы CSS для таблиц. Для таблиц HTML можно дополнительно указать классы CSS для этой таблицы.
  • Разбивка по файлам. Установите этот флажок, если хотите отображать действия и фильтры по файлам вместо длинного списка.

Пример извлечения

Нажмите кнопку « Извлечь» , и если все работает, вы увидите вывод HTML с возможностью скопировать его в онлайн-документацию:

Пример извлечения 2

Предварительный просмотр вывода

Для онлайн-примера этого в действии см. Http://enviragallery.com/docs/social-addon/#envira-doc5.

Программная документация

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

Например, в Envira Gallery мы сохраняем конфигурации в виде метаданных Post в массиве и предоставляем пользовательский интерфейс в администрировании WordPress, позволяющий пользователям редактировать конфигурацию для каждой отдельной галереи.

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

Обычно мы получаем 4-5 запросов в день, спрашивающих, какие значения конфигурационных ключей использовать для достижения определенного результата. В то время как наша документация объясняла, что каждый параметр конфигурации делал в пользовательском интерфейсе администрирования WordPress, она не объясняла, какие были названия программных ключей и какие значения они могут принимать.

Обновив нашу документацию, включив в нее программные ключи и принятые значения, нам удалось сократить количество запросов на поддержку по этим вопросам на 80%:

Плагин Документация

Как авторы плагинов WordPress, это означает, что мы можем сосредоточиться на создании наших продуктов, в то время как пользователи и разработчики могут получить немедленные ответы на вопросы, ссылаясь на онлайн-документацию. Также полезно, чтобы эта документация обновлялась как авторы плагинов, поскольку она предоставляет нам быстрый и удобный справочник!

Вывод

Мы узнали, как использовать комментарии DocBlock для наших действий и фильтров, а также автоматически создавать HTML-список действий и фильтров для нашей онлайн-документации. Наконец, мы рассмотрели, как сделать нашу существующую онлайн-документацию более полезной для разработчиков, не теряя при этом простоты, необходимой для нетехнических пользователей.