Почему разработчики тем выносят весь функционал в плагины

Джонатан Аткинсон занимается продажей тем WordPress на Themeforest уже пять лет. Через кропотливый труд, а также поддержку клиентов он смог понять, как зарабатывать себе на жизнь на Themeforest, не впихивая сотню опций в свои продукты.

plugins-300x236За прошлый год Аткинсон и его команда с Cr3ativ.com попытались вынести всю функциональность своих тем в бесплатные плагины, отмежевываясь от чрезмерного «распухания» темы – тренда, который преобладает на рынке. На страничке Cr3ativ теперь имеется своя страница плагинов, где вы можете найти необходимый функционал, включая добавление каруселей, портфолио, шорткодов, а также профилей участников. Разработчики также планируют добавить в ближайшие недели плагины для событий, дискографий и фотостримов.

Преимущества вынесения функциональности тем в отдельные плагины

Аткинсон рассказал нам, что первоначально они создавали плагины для использования в своих темах, чтобы качественнее обслуживать своих покупателей. «Я принял решение, что нужно сделать их максимально универсальными, чтобы гарантировать, что они могут легко использоваться в любой теме – бесплатной или премиальной», отметил он. «Я также решил сделать их 100% бесплатными и поддерживающими GPL 2.0, чтобы люди могли использовать их, изучать и расширять по своему усмотрению».

Отделение функциональности от тем – часть современных практик разработки тем WordPress, однако Аткинсон констатировал и некоторые дополнительные плюсы от такого подхода:

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

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

«Мы никогда не создавали отдельные плагины ранее, поэтому в данном процессе мы вынуждены были положиться на Пиппина с PippinsPlugins.com, который дал нам полезные советы», говорит Аткинсон. Вынесение возможностей в плагины оказалось неизведанной территорией, однако Пиппин Вильямсон помог изучить и протестировать эти бесплатные плагины. «Мы столкнулись с необходимостью некоторых изменений, и в самом конце разработки были рады, что прошли этот путь».

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

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

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

Аткинсон объяснил, как менялся рынок тем в течение долгого времени:

«В самом начале, когда Themeforest был только-только запущен, покупатели мыслили совсем иначе. Большинство покупателей были разработчиками. Они, естественно, могли и не быть профессионалами, однако уж точно знали, как засучить рукава и сделать небольшие изменения в CSS. Однако теперь мы пришли к тому, что большинство покупателей являются, по сути, простыми владельцами своих сайтов… Они знают, как установить тему, они знают, как установить плагин»

Клиенты хотят получить темы, которые не требуют установки кучи плагинов. Они хотят что-либо настраивать путем простых щелчков мыши. Как результат, забитые под завязку настройками темы WordPress продаются в разы лучше, нежели те, которые следуют путем успешных практик разработки. Большинство самых продаваемых тем WordPress на Themeforest – продукты, которые насыщены многочисленными слайдерами, десятками настроек для главной страницы, шорткодами, безграничными разметками, билдерами страниц и т.д.

Smashing Magazine не так давно рекламировали тему WordPress, которая, по их заверениям, должна стать «последней темой WordPress, которую вы покупали». Тема X, созданная на базе советов от интернет-маркетологов и SEO-экспертов, обещает «действительно неограниченную стилизацию». Это одна из многих тем, которые были созданы, чтобы предложить все аспекты для любых проектов.

x-theme

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

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

Создание тем, которые поддерживают систему плагинов

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

Джастин Тэдлок долгое время был ярым приверженцем вынесения функциональности плагинов за пределы тем, поскольку это касается в том числе и переносимости данных. «Именно так и функционировала система WordPress, до того как появились плагины и темы. Мне бы никогда не пришло в голову добавить функциональность плагинов в тему, поскольку WordPress разрабатывалась совсем иначе. Но по некоторым причинам это стало трендом».

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

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

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

Первые шаги по удалению функциональности плагинов из тем

San Diego Faceial Plastic Surgeon Amir Karam
Если вы являетесь разработчиком темы, который желает удалить функциональность из своих продуктов и предложить их в виде сопровождающих плагинов, то в таком случае вам придется переделать почти весь свой прошлый труд. Совет Тэдлока: «Просто сделайте это. Убедитесь, что вы предлагаете своим пользователям самый простой переход, по крайней мере настолько простой, насколько он может быть».

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

«Многие разработчики хотят создать абсолютно все с нуля, когда уже имеются лучшие решения. Я сам наступал на те же грабли. Естественно, инфраструктура WordPress.org недостаточно хороша, чтобы разработчики могли сотрудничать между собой. Поэтому многие из нас решили обратить свой взор в сторону Github»

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

Советы клиентам, совершающим покупку темы WordPress

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

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

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

Источник: wptavern.com

Блог про WordPress
Комментарии: 7
  1. Марина

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

    1. Никита Романов

      С некоторых пор распространилась идея что плагины замедляют работу вордпресса, вот люди и «оптимизируют» его работу. А обновления я стараюсь устанавливать сразу как они становяться доступными.

  2. Анатолий

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

    1. Дмитрий (автор)

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

  3. BaNru

    И всё же плагины замедляют, как ни крути. В плагинах используется специальные методы/вызовы необходимые при написание плагинов. В админке постоянно происходит проверка наличия плагина и прочие проверки, в том числе на обновление. Ну и так далее.

    Со временем, некоторые плагины разрастаются, а от плагина надо только малую функциональность.

    Может я поступаю и не верно, но я предпочитаю использовать функции. Я некоторые плагины для своей темы переписал на функции. Скорость конечно не замерял.

    Да и на малопосещаемых блогах разницы не увидишь, не почувствуешь. а вот если посещаемость блога перевалит за 5-10 тысяч в день, то тут уже наступает время когда темы не покупают, а допиливаю и дорабатывают на заказ. Там уже другие разговоры идут. Часто отказываются или полностью переписываются плагины. Ибо лучше 1 раз оплатить работу разработчику, чем постоянно платить за лишние мощности сервера.

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

  4. Nika

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

  5. Otshelnik-fm

    Плагины комбайны — должны быть в папке с плагинами, а вот простые у которых в админке 1-2 настройки — я предпочитаю выносить в функции. Прописываю настройку прямо в functions.php.
    Тему разве меняют как перчатки? Я за 5 лет не менял ее ниразу. Скажу более — от оригинальной темы не осталось ничего. Все переписано, разметка полностью поменялась. Ну может быть названия классов в некоторых местах остались прежними, но их свойства точно поменялись.

    Теперь что из плагинов успешно перешло в файл functions.php —
    1.запрет на проверку обновлений
    2. добавление кнопок в html редактор админки
    3. подсчет комментариев
    4. спойлер
    5. навигация по страницам
    6. перелинковка страниц (но тут сложнее добавлять новые имена для перелинковки. Но т.к. это делается все реже, и их мало — тупо пишу в файле)
    7. Случайная картинка — вообще вынесено на отдельную страницу.
    8. своя стилизация админки (самоделка под себя)
    9. Расширенная форма поиска
    10. Метабокс произвольных полей — раз настроил под себя и забыл.
    11. история посещения страниц.
    12. Ленивая подгрузка картинок
    13. плеер аудио видео.
    это те плагины которые вмещали множество настроек в админке — заменил на настройки прямо в файле.

    Тут в списке нет еще около 15 коротких функций на 5-15 строк кода которые вообще без настроек.

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

    Поменялась ли скорость сайта? -Делал замеры на единичных случаях — да.
    Но как же обновлять плагины? -Это мне интересно, и когда я решу посмотреть а что же обновилось — идет сверка старого и нового. Анализ и вообще для развития полезно. Особо критичные места у меня задокументированы и я знаю заранее где я менял и какие грабли вылезали.

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

Добавить комментарий для Дмитрий Алёшин Отменить ответ

Получать новые комментарии по электронной почте.