Статьи

Решая, как разработать свой WordPress Theme Framework

В первой части этой серии я рассказал о том, как работают фреймворки тем и какие существуют типы фреймворков.

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

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

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

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

Учтите следующее:

  • Ваша тематическая структура предназначена только для вас или для других разработчиков?
  • Будет ли ваша платформа использоваться разработчиками или пользователями, не имеющими опыта программирования?
  • Будет ли ваша тематическая структура публичной или приватной?

Если ваш фреймворк предназначен только для вашего личного использования, тогда вам нужно будет думать только о своих собственных потребностях при его разработке; тем не менее, имеет смысл проверить его на будущее и сделать его максимально надежным, поэтому вам следует:

  • использовать стандарты кодирования WordPress
  • принять принцип СУХОЙ (не повторяйся)
  • используйте код, который вы можете проверить с помощью средства проверки W3C . Вы также должны убедиться, что ваш код доступен
  • включать комментарии — даже если кто-то другой не будет смотреть на ваш код, вы будете удивлены, насколько легко забыть, что делает фрагмент кода, когда вы приходите редактировать его много месяцев спустя
  • использовать контроль версий для обновлений вашей платформы
Инструмент проверки разметки W3C

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

  • предоставить документацию с описанием структуры, функций и функций вашей платформы
  • подумайте, как вы будете делиться и сотрудничать над кодом — использование системы совместной работы, такой как GitHub , сделает это намного проще
  • документируйте свои версии или связывайте их с вехами и / или выпусками на GitHub.

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

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

Если ваша структура предназначена для не кодирующих пользователей, вам нужно будет включить:

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

Если ваша целевая аудитория — разработчики, которые будут использовать вашу инфраструктуру вместе со своими дочерними темами и / или плагинами, вам может потребоваться рассмотреть некоторые из перечисленных выше, но вам также нужно будет включить функции из следующего списка:

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

Если вы планируете выпустить ваш фреймворк для общественности, тогда будет целый ряд дополнительных соображений:

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

Вам также необходимо подумать о том, как вы будете продвигать свою платформу: даже если она бесплатна, вы хотите, чтобы ее использовали люди, поэтому вам нужно будет публиковать ее через веб-сайт, социальные сети, SEO, сторонние тематические магазины, из уст в уста, местные встречи, WordCamps и / или другие методы.

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

Этот список будет включать (но не ограничиваться) выбор из следующего:

  • файлы шаблона (включая части шаблона и включаемые файлы)
  • функции
  • крючки для действий и фильтры
  • области виджетов
  • меню
  • экраны настроек и настроек
  • поддержка настройщика темы
  • документация
  • детские темы

Для этого определите:

  • что это за функция
  • что это будет делать
  • где появится его код

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

  • Будет ли ваш фреймворк иметь встроенный макет, будет ли он настраиваться или будет закодирован с помощью дочерних тем?
  • Как много из этого вы включите в родительскую тему? Некоторые рамки имеют крайне минимальное стилевое оформление, в то время как другие (например, мои) создаются с использованием объектно-ориентированного CSS ( OOCSS ), чтобы облегчить стилизацию в дочерних темах.
  • Будет ли ваш фреймворк отзывчивым или это будет закодировано через дочерние темы? Если ваша родительская тема отзывчива, вам нужно убедиться, что она не перезаписана никакими стилями макета в ваших дочерних темах, и это одна из областей, где OOCSS пригодится.
  • Будете ли вы добавлять SEO-функции в ваш фреймворк сверх того, что предусмотрено WordPress, или пользователи будут добавлять это через отдельный плагин?
  • Вы включаете такие вещи, как ползунки, галереи, фоновые изображения и многие другие в ваших рамках или добавить их через дочерние темы, если они необходимы?

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

Разработка вашей собственной тематической структуры является серьезной задачей. Это то, что сэкономит вам много часов времени на разработку в долгосрочной перспективе, но для того, чтобы все сделать правильно, потребуется значительный объем работы.

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