Что нового

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

1. Новая тема оформления.

Тема Fluida ушла в небытие, теперь за внешний вид сайта glashkoff.com отвечает замечательный шаблон Rowling от дизайнера Андерса Норена.

Новый внешний вид сайта

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

Почему я обновил тему

Всё началось с того, что автор шаблона Fluida начал сходить с ума. Обычно при обновлении ожидаешь, что там исправлены какие-то косяки, закрыты уязвимости и добавлены новые вкусности. Вместо этого всё пошло наперекосяк. Буквально: начали искажаться заглавные изображения. Они влияют на внешний вид рубрик, главной страницы и используются в других местах, менее заметных, поэтому проблемы с ними делают шаблон нерабочим. Ошибка была примитивной: неправильно считались размеры. Доработка нужна простая, но автор игнорировал проблему.

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

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

2. Страницы стали меньше весить.

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

3. Рекомендация похожих статей.

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

4. Предложение заглянуть в группу Вконтакте.

Теперь очень, очень скромное всплывающее окно появляется справа внизу страницы с предложением зайти в мою группу Вконтакте. Оно беспокоит читателя только один раз. Если только он не зайдёт с другого браузера или не почистит кукисы, из-за чего сайт воспримет его как нового посетителя.

В группе ВК я смогу ответить на любые вопросы, если по каким-то причинам система комментариев сайта вас не устроила.

5. Изменена система комментариев.

Я убрал комментирование с помощью Вконтакте, оставив только встроенную, не требующую регистрации. Дело в том, что слишком уж много программного кода подгружается для работы комментариев через Вконтакте. Это минимум на 3 секунды замедляло открытие любой страницы. Решение существует - подгружать скрипты динамически после прокрутки до низа страницы, но нужно это дело тщательно проверить перед использованием. Поэтому пока комментариев через ВК нет.

6. При постинге в социальных сетях на картинке будет надпись.

Я написал плагин для WordPress, который автоматически пишет поверх изображения название статьи. Это нужно для того, чтобы при размещении в соцсетях можно было легко понять, куда ведёт ссылка. Выглядит как-то так:

Работает во всех популярных соцсетях: Вконтакте, Фейсбуке, Твиттере, Гуглоплюсе и так далее, лишь бы разметку OpenGraph поддерживали.

Плагин пока выкладывать не буду, нужно дорабатывать.

Подводные камни WordPress

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

Предыдущая версия сайта выглядела неплохо, но работало это не то чтобы очень хорошо

Предыдущая версия сайта выглядела неплохо, но работало это не то чтобы очень хорошо

Почему же это заняло так много времени? Потому что сайт работает с помощью самой популярной системы управления контентом WordPress, с которой последнее время творится что-то неладное. На середину марта 2018-го 30% сайтов использует WordPress, что впечатляет, но не является показателем качества.

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

Я писал заметку про преимущества этой системы управления контентом полтора года назад (Что такое WordPress и почему он важен). Сейчас всё хорошее стало перекрываться несколькими проблемами, которые, возможно, снизят популярность этой CMS.

1. Плохое качество плагинов

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

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

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

Например, плагин Enlighter — Customizable Syntax Highlighter, с помощью которого можно раскрасить примеры кода, что востребовано среди блогов на девелоперские и админские темы, подключает на страницах аж целый JavaScript фреймворк Mootools, весящий 89 килобайт. И это не считая стилей и скриптов от самого разработчика плагинов. Итого страницы тяжелеют на 150-200 килобайт, что приблизительно сравнимо с весом одной-двух фотографий и замедляют загрузку страницы на 1-15 секунд в зависимости от скорости интернета. Несмотря на недостатки, плагин установлен более чем на 8 тысячах сайтов и имеет неплохие отзывы.

2. Плохое качество шаблонов

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

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

Немного жизненного опыта

Иногда бывает так, что вроде всё выглядит нормально, и CSS-стили написаны хорошо, но после активации плагина, который соединяет и сжимает скрипты (вроде Autooptimize), всё рушится: стили пропадают, что-то не загружается, ссылки перестают работать. Скорее всего, причина в плохо написанных скриптах JavaScript. Некоторые привязаны к jQuery, которая начинает загружаться позже (должна первой), другие используют одни и те же имена переменных. Всё это и вызывает подобные "эффекты".

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

3. Проблема платных тем

В погоне за прибылью разработчики забывают об оптимизации.

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

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

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

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

4. Несовместимость со свежими версиями PHP

Сила и одновременно проклятие WordPress - совместимость. Система постепенно обрастает новыми возможностями, но старые плагины (и темы) трехлетней давности часто работают без проблем. Это даёт ложную уверенность в том, что так будет всегда.

Исследуя плагины (в общей сложности при создании новой версии сайта опробовал около трёх сотен), я выяснил, что треть из них не работает "из коробки" при определённых условиях, повергая сайт в 500 ошибку. Всё дело в том, что многие плагины написаны на версии 5.6 языка PHP, в то время как на моём VPS установлена 7.2, не поддерживающая небезопасную функцию create_function(). Эта и другие устаревшие функции часто встречаются в плагинах и шаблонах. А значит, плагин работать корректно не сможет.

Доработать пару строчек кода - дело лёгкое для знающих PHP девелоперов, но начинающим вебмастерам такое может оказаться не под силу.

5. Бесполезность каталогов бесплатных плагинов и тем

Многие проблемы с совместимостью, функциональностью и качеством кода можно решить с помощью грамотной структуризации каталогов wordpress.org/plugins/ и wordpress.org/themes/. К сожалению, сейчас их иначе как свалками назвать нельзя.

Более 54 000 плагинов. Более 5 000 тем. И все они свалены в две кучи без рубрикации. Браво, уважаемая команда WP, вы действительно заботитесь о той части системы WP, которая поддерживает интерес к вашему творению.

Недостатков у каталогов множество. Вот самые, имхо, острые:

  • Нет проверки плагинов на наличие неподдерживаемых в PHP 7.x функций и предупреждение пользователей. Это ведь так сложно, словно нет подходящих инструментов (на самом деле есть).
  • Убрали и не вернули возможность отбора плагинов по дате их создания. Теперь нельзя увидеть, что нового появилось в каталоге. Это как из интернет-магазина убрать раздел "Новые товары" - сайт сразу становится статичным.
  • Нет рубрикации типов шаблонов - огрызок ли это, дочерняя тема или полноценная опенсорсная.

Примерно раз в пару месяцев я смотрю, что происходит на meta.trac.wordpress.org в обсуждениях каталога плагинов и ничего хорошего не нахожу. Разработчики до того осторожны в нововведениях, что изменения похожи на топтание на месте. А в мире информационных технологий отсутствие прогресса - синоним деградации.

Стоит ли отказываться от WP?

Не сегодня, но, возможно, через год...

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

Сейчас самое время для появления по-настоящему удобного конструктора сайтов, способного генерировать сайты не просто с хорошим дизайном, но и с качественным, компактным кодом. Если такой появится, WP придётся подвинуться.