IT-Service-WordPress / WPF

Шаблон плагина для WordPress (CMS)
GNU General Public License v2.0
0 stars 0 forks source link

Разработка шаблона плагина WordPress #1

Closed sergey-s-betke closed 10 years ago

sergey-s-betke commented 10 years ago

В этой задаче опишу для цели и соберу необходимый материал.

Цели:

sergey-s-betke commented 10 years ago

Приведу ссылки на другие проекты github:

P.S. Наткнулся на любопытный плагин, позволяющий обновлять установленные плагины с их репозиториев в github - https://github.com/jkudish/WordPress-GitHub-Plugin-Updater

sergey-s-betke commented 10 years ago

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

sergey-s-betke commented 10 years ago

Необходимо обеспечить возможность совместной эксплуатации в одном wordpress нескольких плагинов как с одной, так и с разными версиями библиотеки классов.

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

Учитывая необходимость поддержки работоспособности разных версий, целесообразно в наименования классов добавлять версию. Или же использовать для этих целей namespace. Последнее - удобнее. Но нужно проверить реализацию автозагрузчика классов при использовании namespace.

sergey-s-betke commented 10 years ago

Теперь пару слов о структуре плагина.

Основной файл плагина - не более, чем загрузчик. В нём мы должны проверить версию wordpress, PHP, прочих компонентов, и не более. Другими словами, код в этом файле должен быть работоспособен в идеале на wordpress 3.0. Посему - никаких namespace здесь и прочих прелестей.

Посему отдельные файлы библиотеки должны быть написаны под PHP 5.0 - это те файлы, которые обеспечивают проверку требований программной совместимости. И в этих файлах версионность классов целесообразно обеспечить через постфикс в имени класса.

Итак, в основном файле мы повесим только hook'и - и не более:

Инициализация плагина предполагается по событию init (http://codex.wordpress.org/Plugin_API/Action_Reference). Но ряд событий до этого момента уже предполагают некоторые действия со стороны плагина (больше - регистрационные, регистрация типов постов, таксономии и так далее).

sergey-s-betke commented 10 years ago

В итоге - должна быть некая фабрика, которая будет манипулировать с рядом классов и объектов в плагине. Потому как на этапе активации, деактивации и удаления собственно сам код плагина (который при загрузке может вызвать и ошибку) грузить не стоит, но при этом уже с параметрами, вспомогательными каталогами и так далее уже необходимо уметь работать. То есть они должны быть описаны где-то отдельно от класса плагина.

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

sergey-s-betke commented 10 years ago

Итак, структура:

sergey-s-betke commented 10 years ago

Как вариант, в основном параметре плагина можно регистрировать всё, что необходимо будет удалить при деинсталляции.?

sergey-s-betke commented 10 years ago

Эту задачу закрываю. Версию 0.1 можно считать практически завершённой.