WordPress:
темы и плагины
с нуля

Сайт строится вокруг того, что на нём лежит: модель, поля, блоки, роли, языки. Дальше ваша команда правит его без меня — потому что сайт, который боятся трогать, быстро перестаёт быть правдой.

36 проектов
отмечено в архиве
Без конструктора страниц
редактор, настроенный вместо этого

Одна платформа, две разные задачи

  1. Сайт, а не магазин

    Публикации и контентная модель за ними. Корпоративные сайты, каталоги без оплаты, всё, где работа — держать информацию в порядке, а не двигать товар. Это та половина, о которой страница.

  2. Магазин — на соседней странице

    WooCommerce превращает ту же установку в магазин. Это другой разговор с другими решениями внутри, и у него своя страница. Всё про продажи решается там.

Что редактор сможет менять сам

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

  1. Вещи, а не страницы

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

  2. Поля, которые нельзя сломать

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

  3. Все варианты и так подходят

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

  4. Публикация без ключей от всего

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

  5. Откат, который захватывает поля

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

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

Написано, а не куплено

  • Родительская тема несёт то, что нужно каждому сайту; дочерняя — только этот
  • Шаблоны написаны под модель контента, а не под демо-импорт
  • Стили редактора собраны из тех же переменных, что и фронт, а не подогнаны на глаз
  • Имена настроек — договор с базой: переименуешь одну — осиротеют все сохранённые значения
  • В стилевой файл скомпилированы только те компоненты, которыми сайт пользуется
  • Сборка перезаписывает стилевой файл и не может тронуть код самой темы

Один источник, много языков

  • Один английский источник, переводимый при запросе, а не продублированный под каждый язык
  • Переводчик видит предложение, а не шаблон
  • Строки — настоящий текст на странице: собранное в JavaScript до переводчика не доходит
  • Числа выводятся через формы множественного числа и остаются грамотными в языке, где этих форм три
  • Индексация, hreflang и какая версия отвечает на запрос — этим занимается страница про SEO

Написать, а не установить

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

  1. Код, который переживёт тему

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

  2. Зависимость — это решение

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

  3. Где встречаются два плагина

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

  4. Админский экран под задачу

    Метабокс, который проверяет свой nonce, проверяет права и на автосохранении выходит, не трогая данных. Пропущенный третий пункт — то, откуда берутся полусохранённые записи, и на метабокс никто никогда не думает.

Держать плагины обновлёнными и не давать одному взломанному читать соседний — работа сервера, она описана на странице DevOps. Здесь решается, какие плагины вообще существуют, — и это та половина, которую дешевле сделать правильно.

Всё смежное — тоже под ключ

Четыре вещи, которые нужны WordPress-проекту и которые эта страница не продаёт. Знать их список полезно ещё и потому, что две из них у вас обычно уже есть — и покупать их заново не нужно.

  1. Поиск — отдельное ремесло

    За что сайт находят и почему не находят — целая практика со своей страницей. Ничто здесь не продаётся как готовое к поиску. Страница, которая такое обещает, обычно обещает это про карту сайта.

  2. Сервер — это не сайт

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

  3. Продающая половина магазина

    Каталог, оплата, доставка, остатки и фиды, которые несут товары на другие площадки. Платформа та же самая; решения — другие, и разложены они на своей странице.

  4. Тексты в объёме — отдельная работа

    Я пишу бриф страницы: зачем она, на какой вопрос отвечает, что на ней обязано быть. Дальше пишет человек, который этим зарабатывает. Писать в объёме — работа на полный день, и она не моя.

Сайт, который никто не осмеливается обновлять

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

  1. Перед тем как прикасаться к нему, прочтите это.

    Какие плагины выполняют реальную работу, а какие бездействуют. Что было отредактировано на месте, и какой в итоге получается модель контента после того, как страницы прочитаны, а не подсчитаны. Цитата приводится после этого, а не перед этим.

  2. Тема, отредактированная на месте.

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

  3. Отказ от услуг строителя

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

  4. Содержание воспринимается

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

Если сайт действительно был взломан, это работа по восстановлению, и она остается на сервере; ошибки поиска на уровне шаблона остаются на уровне поиска. Перестройка сайта — не единственное решение. На сайте, тема которого никогда не редактировалась, это обычно неправильная тема, и сказать об этом стоит не четверть доллара, а целый день.

Перед обращением

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

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

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

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

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

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

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

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

Заполнить бриф

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

    Что должно быть на нём

    Кто вносит изменения в текст после запуска

    Сайт, который есть сейчас