Создание плагинов для WordPress (руководство)

wordpress-plugin-development

  1. Введение в разработку плагинов
  2. Основы плагина
  3. Безопасность плагина
  4. Хуки
  5. Меню управления
  6. Шорткоды
  7. Настройки
  8. Метаданные
  9. Произвольные типы записей
  10. Таксономия
  11. Пользователи
  12. HTTP API
  13. Javascript, AJAX, & jQuery
  14. WP-Cron
  15. Интернационализация

Данное руководство по созданию плагинов для WORDPRESS является переводом официальной документации для разработчиков.

5 комментариев

  1. Саня

    Узнал массу нового o WP из этого материала и продолжаю читать, спасибо за статьи!

    Ответить
  2. Art

    Просто замечательное, подробнейшее руководство. Но… Не для чайников, типа меня. Попадается кое-где вообще непонятная терминология, при том, что я 25 лет в разработке, не веб, конечно.
    «Заворотки», например — чтобы это значило? Но вообще, повторюсь — прекрасная работа, нигде столько инфы нет.
    Еще бы сделать ее понятней для чайников, а? Например, дополнив конкретными примерами.

    Ответить
    • Eugene Kopich

      Ну некоторые вещи можно и нужно перечитывать по несколько раз. Сам периодически возвращаюсь посмотреть интересующие места.
      Гуглить тоже придется постоянно, это норма, тысячи функций и хуков, все в голове не удержать.
      Если по тексту что-то непонятно, можно спрашивать в комментариях, я постараюсь помочь найти ответ.
      Есть местами трудности перевода, по возможности исправляю.
      Нужно обязательно запускать код по тексту на практике. Много ссылок на описание функций в первоисточнике — по ним нужно переходить, смотреть описание и передаваемые параметры, там часто внизу страниц есть дополнительно примеры использования.
      Изучение структуры базы данных изнутри, также местами дает некоторое «просветление») так как завязано почти все на ней.

      Ответить
      • Art

        Доброго.

        Вот что сразу видно, как именно новичку. Как минимум, есть два варианта подключения функций, одна — когда они во внешнем файле и видимо, это правильная практика. И вторая, когда jquery-скрипт прямо внутри плагина, ну небольшой он, делает что-то простое. Второй вариант не описан, по-моему? Нужно ли там применять все те же защиты, типа NumberOnce?
        Потом — не всегда удобно лазить и проверять код ошибки в логах. Соответственно, инфы о том, как правильно пользоваться echo or alert, а может, еще чем-то нет. Ну вот надо проверить значение переменной или успешность подключения к базе — чем это вывести на экран?
        Какие отличия будут, если будут, при выводе в пост/виджет?
        Чем возвращать результаты работы функции, всегда массивом? А если у меня get_val?

        Потом — у вас во всех примерах предполагается, что jquery подключен, а вдруг нет? Надо же проверить, если не подключен — попытаться подключить? Или нет?

        Потом — что надо делать в init, а что — при активации шортката? К примеру. Вот делаю шорткат. Вставляю его в пост. Где правильней нарисовать кнопки и прочее содержимое формы — в инит или в функции-шорткате?

        Почему хуки надо вешать до объявления функции, а шорткаты — после? Почему бы не собрать их в одну кучу и как, если это можно?

        Еще такая вещь: везде идет, как подключить/отключить плагин. Это чудно. А вот у нас не вышло его подключить, например, пытаемся создать таблицу, а не получилось. Я бы вывел тут юзеру: «Извините, плагин подключить не можем». Не вижу примера такой обработки, это не нужно?

        В общем, вопросов много, дальше уж писать просто неудобно.

        Ответить
        • Eugene Kopich

          Если есть зависимость от jQuery, то файл с функцией подключается через wp_enqueue_script, где эта зависимость указывается.
          Nonce применяются перед действием, затрагивающим базу данных (изменение, удаление, ajax-запросы).
          Ошибки можно в браузер выводить (часть информации попала в раздел разработки тем) с помощью
          define( 'WP_DEBUG', true );
          echo, var_dump, print_r, alert — да обычная практика, тут дело вкуса и больше к самому PHP или JS соответственно имеет отношение. Можно поставить плагины для дебагинга — Debug This, Query Monitor, Which Template.
          jQuery подключается, если для этого файла указана зависимость от него (поэтому лучше скрипты в отдельных файлах держать).
          init — это хук WP, на который цепляется функция самого шорткода, init трогать не надо, все описывается в вашей функции.
          Порядок объявления функций и зацепки их на хук не играет значения, так работает PHP, можно встретить примеры где сначала идет функция, а потом она цепляется на хук и наоборот.
          Кроме ошибок, которые может вывести сам WP в админке, есть хук admin_notices — на него можно добавлять свои сообщения.
          P.S. лучше писать вопросы под соответствующей вопросу странице на сайте. У меня больше уклон в backend/php/бд, по js/jquery есть пробелы)

          Ответить

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *