Пришло время сделать то, что совершили уже тысячи: обзор WordPress. Мимо наиболее популярной системы управления содержимым в мире пройти очень трудно. А с учетом того, что везде про WP лишь хвалебные отзывы, то полностью нейтральный с трезвым взглядом на преимущества и недостатки будет очень даже к месту. Ладно, пора приступить к делу. Надеюсь, сумею доступно объяснить плюсы и минусы данной CMS.

Обзор WordPress

Что можно сказать про WordPress

Обзор WordPress – дело непростое. Скажи что-нибудь плохое и куча недовольных налетит. Одни с криками «Как ты можешь не любить плагины! Они все сделаны профессионалами!». Да, такое слышу частенько, чаще, чем хотелось бы. Серьёзно, критические уязвимости в плагинах, дико прожорливый функционал, крайне фиговая оптимизация. Не, не слышали.

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

Другие налетят с криками «Ты ни черта не понимаешь в этой CMS, у тебя руки кривые, это не баг, а фича!». Ну возразить довольно легко, но вряд ли меня услышат. Так что, предупреждаю сразу, все нижесказанное — личное мнение, бомбящие пуканы не направляйте в мою сторону, а также на других людей и легковоспламеняемые предметы.

Теперь поговорим о хорошем. WP не зря завоевал популярность. У него малый порог входа, отличный функционал и огромный потенциал. Это прекрасная система управления содержимым, но, как всегда, найдутся ребята, которые выскажут, что «Drupal лучше!», «tru-быдлокодеры фигачат на фреймворках, чистом PHP, JAVA, Pyton…etc!» и самое главное, даже приведут адекватные аргументы. Так вот, предупреждаю, я не говорю, что WordPress идеален и лучше всех. Я утверждаю, что это отличный инструмент для работы со своими преимуществами и недостатками, не более.

Банально, если поднимете сайт на фреймворке для мелкой компании, найти человека, способного доработать функционал за адекватные деньги, будет проблематично. А специалистов, разбирающих в Вордпресс довольно много. И для небольшой компании они не станут серьезным числом в графе «Расходы». Так что у WP есть место на рынке. Там, где не нужен необычный функционал и высокая степень масштабируемости, CMS справится отлично.

Обзор WordPress: архитектура

Большое вступление получилось. Но ладно, пора перейти непосредственно к нашим баранам CMS. WP очень легко установить. Это стандартная система, для которой подойдет любой хостинг с поддержкой PHP, MySQL, Apache. Желательно, с актуальными версиями. Это минимальный набор. Но с другими веб-серверами проблем не встречал. На том же LSAPI все отлично пашет. А если сделать связку Apache+Nginx, то сайт на WP будет работать заметно быстрее.

От себя порекомендую хостинг Beget: https://beget.com/. Отличный вариант с веб-сервером Nginx+Apache, поддержкой Redis, а также один из самых стабильных и шустрых хостингов. Ну, данный сайт расположен именно на этом хостинге, так предлагаю вам то, что использую сам.

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

А теперь дальше по теме Вордпресс.

В принципе, с данной CMS очень легко работать, особенно если требуется разместить простой блог. Если же требуется дополнительный функционал, то его можно допилить плагинами. В общем, глубоко в код лезть не придется, что позволяет легко, быстро и недорого развернуть сайт. Скажу честно, даже HTML и CSS знать не обязательно, но со знаниями работать будет все-таки проще.

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

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

Слишком много «псевдоспециалистов». Людей, которые могут установить WP, поставить на него тему и воткнуть пару плагинов, зато считают себя настоящими веб-разработчиками. К сожалению, у любой медали две стороны.

Несмотря на то что для конечного пользователя это очень простая CMS, но в плане разработки она становится очень сложной. Скажу честно, Junior WordPress-разработчик гораздо слабее, чем тот же уровень фреймворк-девелопера, даже мидл окажется послабее, чем мидл на фреймворках. Но Senior-WP окажется на голову выше сеньора на фреймворках. Все обусловлено простым фактом:

  1. Если во фреймворках используется в основном ORM (объектно-реляционное отображение), то у Вордпресс EAV (модель сущности-атрибута-значения).

  2. Вместо архитектуры MVC (модель-представление-контроллер) применяется EDA (событийно-ориентированная архитектура).

В чем разница. Постараюсь объяснить кратко. Начнем с ORM. Этот тип предназначен для того, чтобы преобразовывать термины и классы данных (объекты) в пригодные формы для последующей передачи в СУБД, но так, чтобы не было необходимости создавать SQL-алгоритмы для взаимодействия в самой системе управления базами данных.

ORM

Это отличный вариант, но есть свои недостатки, так как подходят только БД для реляционного представления, появляются трудности с событийным представлением. В общем. Это довольно трудно объяснить, не накатав пару отдельных статей. Так что скажу так, вы можете ориентироваться на объекты, выполнять с ними любые действия, но чтобы интерпретировать событие, нужно чтобы оно меняло свойства объекта, в противном случае анализировать его не получится.

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

EAV

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

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

Теперь о MVC. В данном случае получается работа всего с тремя значениями:

  1. Модель. Она не зависит от представления, не взаимодействует с пользователем напрямую, только через контроллер. Постоянно подвергается анализу и меняет свое состояние, передавая данные в преставление.

  2. Представление, в свою очередь, отвечает за извлечение данных из модели и передачи их пользователю. Данные от пользователя представление не обрабатывает.

  3. Контроллер. Он обеспечивает обратную связь. Фактические передает данные от пользователя в модель, формируя ее новое состояние.

MVC

Очень простая схема, которая позволяет реализовать довольно сложные проекты. Именно поэтому данная архитектура сейчас очень популярна.

А теперь о EDA. Этот тип архитектуры реагирует на события. Любое взаимодействие внутри системы становится триггером для совершения новых событий внутри системы. К сожалению, при неправильном подходе можно породить «снежный ком» из бесконечного количества событий, потому сложность разработки возрастает на порядок. И дело даже не в самом коде, а логике, которая позволяет реализовать намного больше вариаций, но при этом требует гораздо больше аналитики перед внедрением.

EDA

Строится по системе:

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

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

  3. Механизм обработки событий. Он отвечает за идентификацию события, фактически создает реакцию и вносит изменения.

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

  5. В случае если завершение события породило новое событие, то генератор снова запускается.

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

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

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

Обзор работы в WordPress

А теперь отошли от глубоких весей сей CMS, пришло время взглянуть на более прикладные вещи. Начнем, конечно же, с банальностей. Что можно сделать на WordPress?

Несмотря на то что движок называют «блоговым», системой управления для школьников и так далее. Со всех сторон раздаются крики «пилите на фреймворках!», но это ерунда. На WP реализовать можно практически все. Начиная от маленького блога или лендинга и заканчивая интернет-магазином. Даже крупным.

Конечно, узкоспециализированный инструмент для своей задачи окажется гораздо эффективнее, чем универсальный. Но где вы сейчас видели чистый интернет-магазин или чистый блог? Функционал расширяется. Сейчас многие проекты представляют собой помесь блогов, ИМ и интерактивных площадок. Все стремится к универсализации, потому популярность универсальных CMS становится все выше. Drupal, Joomla. Почему они занимают лидирующие позиции? Потому что универсальны. Почему WP лидирует? Потому что универсальный и с низким порогом вхождения.

Начнем с установки. Без шуток, выполняется она 5 минут. Ставится WP очень просто, в следующей статье опишу, как это сделать.

После установки вы встретитесь с удобной админкой. Как человек, который использовал много CMS, могу честно сказать, что только у October мне понравилась больше.

Админка WordPress

Из панели администратора управлять можно практически всем:

  • создавать страницы;

  • редактировать код темы;

  • создавать меню;

  • добавлять виджеты;

  • устанавливать плагины, обновлять.

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

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

Подробнее о таксономиях:

  1. Рубрики. Фактически, отдельная тема для ряда записей, которые отделены от других рубрик.

  2. Архивы дат. Сортировка записей по датам. Можно выводить архив за месяц, год, два дня, короче, за тот период времени, который пожелаете.

  3. Архивы меток. Хештеги видели? Метки примерно то же самое. По ним можно группировать записи из разных рубрик, но со смежными метками.

  4. При желании можно накодить и кастомные кастономии. Чисто для своих целей.

Далее можно строить из них вариации. Мало? Тогда с помощью плагинов можно добавить пользовательские таксономии и построить более сложную структуру.

Теперь про записи. На самом деле создавать записи здесь довольно легко. Захотели, используйте Гутенберг.

Редактор Гутенберг

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

Классический редактор

Хотите что-то изысканное и максимально простое, но то, что потом превратится в большую проблему? Тогда можно установить визуальный конструктор, например, Elementor. Но я предпочитаю использовать классический редактор. С ним больше возможностей, чем с Elementor, ограничения которого перебить крайне трудоемко.

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

Обзор WordPress: недостатки

Да, мы ограничены рамками CMS, потому некоторых вещей не хватает и пока не предвидится.

Во-первых, очень пригодился бы шаблонизатор. Реально, сейчас шаблон похож на помесь PHP и HTML.

Шаблон WP

Было бы классно, если все было реализовано так, как, к примеру, в Twig. Банально, реализация шаблона в CMS Grav.

Шаблон Grav

Чем она плоха? Мы создаем отдельные элементы и посредством шаблонизатора подключаем там, где нужно.

Поехали дальше. Во-вторых, не хватает панели управления. Безусловно, админка — это отлично, но полноценная панель управления, которая, как и CMS, работала бы в режиме «Lego», пошла бы на пользу. В ИМ, разнообразных форумах, в конце концов, даже в небольшом сайте компании такая панель очень бы пригодилась.

В третьих. Отсутствие поддержки других СУБД. Тот же PostreSQL на порядок шустрее, чем MySQL, но без серьезных костылей не прикрутишь. Для крупных проектов производительная СУБД — необходимость, а не прихоть.

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

В целом для меня это все.

Проблема модульности

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

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

Выводы

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

Все потихоньку и не будет никаких проблем. Успехов в разработке!

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 4.2 / 5. Количество оценок: 9

Оценок пока нет. Поставьте оценку первым.

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