Совместное использование общих функций (функций, частей шаблона) между плагинами и темами?


Если тема и плагин имеют общую функциональность, как лучше всего поделиться ими?

Примером этого является тема и плагин (например, виджет "последние сообщения"), использующие одну и ту же часть шаблона, например, content-post.php. Или функция, которую используют как тема, так и плагин?

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

Author: Runnick, 2017-12-01

1 answers

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

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

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

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

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

 3
Author: Greg36, 2017-12-01 23:44:41