Wordpress это сложно, быстро и эффективно (пост для программистов)

Wordpress это сложно, быстро и эффективно (пост для программистов)

Многие «знающие программисты» говорят о том, что wordpress это просто, эта система управления сайтом для чайников, школьников, домохозяек, а крутым программистам с таким работать позор

здесь есть доля правды, но и целый пласт заблуждений

Начну с того, что wordpress имеет двойственную природу

1. Он может работать как конструктор, в котором ты без навыков программирования, можешь сделать сайт относительно просто

берем кубики – плагины, темы, и собираем то, что хотим

для большинства сайтов, этого хватит слихвой

на таком уровне действительно справится школьник или домохозяйка, в этом кстати и стоит основа популярности wordpress

@include('site.includes.small.delimiter')

2. Режим – фреймворка, вот тут и открываются широкие возможности

многие скажут что wordpress это не фреймворк

мой ответ будет заключаться в отсылке к википедии:

Фреймворк (неологизм от англ. framework — каркас, структура) — программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.

в соответствии с этим определением, wordpress это фреймворк

причем в категории фреймворков это очень сложный уровень, не многие могут его освоить на уровне мидла, не говоря уже про сеньера (пруф: laravel - 100-200 основных методов | wordpress - 1000-2000 основных методов. Что проще выучить 100 или 1000 методов?))

@include('site.includes.small.delimiter')

Развенчиваем основной миф

Многие программисты страдают синдромом утенка

они сначала собирали костыли на чистом php, потом где-то прочли про mvc для соглашений и orm для данных

и решили

— вот она матерь всех веб-программистов

добрая, умная, пушистая, родная. А все что не похоже на это, то не мама, и значит - плохо


и тут им попадается wordpress, он далеко не похож на их идеалы

вместо orm - eav, а кроме mvc у него еще и eda


в результате этого мы получаем забавный сценарий

некому Паше - типичному программисту, дают задачу

- Паша, сделай вот такую штуку для WordPress

тот будучи уверен что это игрушка для школьников, что он сейчас сядет и сделает. Там только начать и кончить

садится и начинает разбираться

и понимает, что ничего не понимает

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

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

Так и образуется репутация WordPress, что это для школьников, и вообще говно, а настоящие программисты программируют на голом php

а то что надо осваивать eav и eda — вызывает синдром утенка, тк оно ни разу не, походит на хорошо знакомое orm и mvc

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


как на самом деле?

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


Первое удобство здесь состоит в плагинах работы с контентом

возьмем к примеру мультиязычность

  1. ставим плагин
  2. добавляем нужные языки
  3. дублируем весь контент в админке по языкам (стандартная практика мультиязычности)
  4. оборачиваем все одиночные строки на сайте в код для перевода

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

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

Второе - это сами методы wordpress

они изначально были заточены под работу с данными. За 3-5 минут можно создать новый тип записей и категории к ним, например работы и категории работ

вывести это все также очень просто и быстро, используя встроенные функции wordpress

сколько времени так сделать, заняло бы на laravel?)


кроме методов высокого уровня, есть также методы низкого уровня

вроде методов класса wpdb для работы с базой данных

Третье - acf

это прямо мое любимое, плагин Advanced Custom Fields Pro

с помощью него можно посадить на wordpress любую, даже самую сложную верстку за минимальное время, и при этом клиенту будет очень удобно редактировать сайт

подробнее про этот метод я напишу в одной из следующих статей

Четвертое - это встроенный роутинг wordpress

он довольно удобен, не приходится прописывать url-лы в каком-то отдельном файле, все просто настраивается в адмике, а вид url можно поменять в пару кликов

Пятое встроенный генератор меню

создав страницы в админке, вы можете довольно просто добавить их в меню, и вывести это меню на сайте использовав метод wp_nav_menu

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

Про скорость

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

условно говоря, 80% запросов обрабатывается nginx и memcached, соответственно от wp здесь участвует только 20%, и уж эти 20% не оптимизировать, сказки)

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

По моему опыту, в 100% случаев когда кто-то утверждает нечто вроде «вот мы уперлись в тормоза WordPress», если покопать то выясняется что реальная причина в тормозах головного мозга тех кто ведет разработку


Перейти на главную страницу