WordPress - советы при создании своих модулей (для начинающих)

WordPress - советы при создании своих модулей (для начинающих)

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

Примечание: И кстати, в WordPress нет модулей, а есть только плагины. Тем не менее, в рамках статьи я буду их называть и модулями и плагинами. По той простой причине, что суть от этого не сильно меняется в этой CMS.

WordPress - советы при создании своих модулей (для начинающих)

Особенности создания плагинов для WordPress (советы):

Во-первых, вся система WordPress строится из так называемых Хуков (Hook - крючок). Если рассматривать альтернативные подходы, то это сродни обычным системам с событийными моделями (Events), где вы можете к определенным событиям назначать функции, которые, соответственно, будут вызываться в момент активации события. В WordPress хуки делятся на два типа: действия (action) и фильтры (filter). Действия предназначены для выполнения каких-то кусков кода по наступлению события (к примеру, отправка почты), а фильтры предназначены для изменения переменных. Стоит отметить, что такой подход позволяет очень просто вносить модификации и расширять функционал, однако порождает дополнительную сложность при разборе проблем с порядком вызова событийных функций.

Например, есть хук-фильтр "the_content", который позволяет редактировать содержимое страницы. Допустим, вы установили два плагина - первый чистит содержимое от JavaScript, а второй наоборот добавляет ряд своих скриптов. Несложно догадаться, что если порядок выполнения событийных функций будет нарушен, то никакого JavaScript на странице не будет.

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

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

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

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

В-четвертых, стилистика оформления кода в WordPress. У каждой CMS есть свой подход при оформлении кода, включая и WordPress. Стоит признать, что стилистика может показаться вам весьма непривычной, однако лучше ее придерживаться в плагинах. В противном случае, когда код начнет разрастаться, то станет сложно ориентироваться, особенно учитывая тот момент, что само ядро состоит из кучи функций вида "wp_cache_add", "get_option" и так далее.

Надеюсь моя статья с советами поможет вам избежать проблем при создании своих плагинов под WordPress.

Социальные сети

☕ Понравился обзор? Поделитесь с друзьями!

Добавить комментарий / отзыв
Комментарий - это вежливое и наполненное смыслом сообщение (правила).



* Нажимая на кнопку "Отправить", Вы соглашаетесь с политикой конфиденциальности.
Социальные сети
Программы (Freeware, OpenSource...)