Рекомендации по разработке новых компонент сайта на основе WordPress

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

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

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

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

Изменение темы оформления

Для каждой темы оформления предусмотрена индивидуальная папка в каталоге /wp-content/thems. Чёткая структурированность по файлам позволяет выявить соответствие файла темы и участка сайта, за который он отвечает. Стандартный набор темы оформления включает следующий список файлов:

  • index.php – без этого стартового файла невозможен вывод общего содержимого сайта. В основном он служит для подключения остальных компонентов темы, определяющих интерфейс веб-страниц;
  • header.php – файл содержания и оформления верхней части виртуальной страницы, где отображается логотип, название, верхнее меню навигации и т.д. Поскольку он загружается в первую очередь, то именно здесь и указывают ссылки на используемые таблицы стилей и сценарии JavaScript;
  • footer.php – отвечает за содержание и оформление нижней части сайта (копирайты, контактная информация, нижнее меню навигации и пр.)
  • sidebar.php – оформление боковой панели виджетами и различными элементами информационного сопровождения в зоне ответственности этого файла;
  • page.php – оформление и вывод страниц сайта;
  • single.php – аналогичный функционал для записей;
  • comments.php – отвечает за формы комментирования отдельных записей или страниц в целом;
  • 404.php – оформление страницы, появляющейся при ошибочном вводе адреса ресурса;
  • archive.php – интерфейс вывода архивных записей;
  • search.php – вывод результатов поиска по сайту;
  • functions.php – наполнен функциями и настройками, отвечающими за поведение сайта;
  • style.css – таблица стилей, содержащая описание интерфейса всех элементов, в том числе и адаптированных для различного типа устройств (компьютер, планшет, смартфон).

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

Корректировка файлов темы доступна при помощи текстового редактора или непосредственно из административной панели управляемого веб-ресурса. Наиболее рациональный способ – текстовый редактор, подключаемый к редактируемой файловой системе по FTP. Некоторые браузеры предоставляют возможность просмотра необходимых записей в таблице стилей или элементов HTML-кода и их изменения в интерактивном режиме. Например, функция контекстного меню «Исследовать элемент» в браузере Firefox или «Просмотр кода элемента» в Google Chrome.

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

  • не обновлять в последующем тему оформления;
  • создавать дочерние темы оформления на основе исходной;
  • создавать свои темы в виде ответвлений – форков.

При создании собственной темы оформления разумнее воспользоваться темой-фреймворк типа Generic Framework, Omega и пр. Они содержат минимальный набор файлов для задания структуры различных элементов и позволяют применять собственные решения для уникального оформления веб-ресурса. Внешние фреймворки и библиотеки типа Twitter Bootstrap представляют собой набор инструментов в виде элементов HTML и CSS для оформления текстовых блоков, навигационных элементов и других компонентов внешнего вида сайта. С их помощью можно создать качественную тему оформления с учётом последних тенденций в сайтостроении.

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

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

Идея такого способа локализации заключается в следующем. Сообщения, предназначенные для пользователя, записанные на английском языке, оформляются с помощью специальных функций __(), _е() и пр. При их вызове происходит анализ языковых параметров сайта и сообщение отображается на языке пользователя. Создание и хранение переводов обслуживает три типа файлов:

  • .pot (Portable Object Template) – текстовый шаблон из строк, нуждающихся в переводе;
  • .po (Portable Object) – текстовый файл, содержащий перевод строк из .pot файла на один конкретный язык;
  • .mo (Machine Object) – двоичная версия .po файла для ускорения работы сайта.

Наборы этих файлов создаются отдельно для ядра WordPress, тем оформления и плагинов. В каждом наборе будет только один .pot файл, а количество .po и .mo файлов зависит от предусмотренного количества языков. При этом в их названии будет присутствовать аббревиатура языка. Например, для перевода на русский язык название файла будет выглядеть следующим образом: plagin-ru_RU.po или просто ru_RU.po. Место их локализации по умолчанию – папки в каталогах темы оформления или плагина под названием languages или lang.

Для создания и корректировки .po файла, а также связанной с этим генерации двоичного .mo файла используют специальные программы. Например, бесплатно распространяемую версию программы Poedit с официального сайта разработчика http://poedit.net. Она анализирует тему оформления или плагин, создаёт .pot файл, для каждой строки которого генерируется перевод, записанный в виде .po и .mo файлов.

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

Если же тема оформления или плагин разработан без учёта возможностей последующего перевода, то веб-мастеру придётся переводить каждую строчку вручную, заменяя английский текст адаптивным переводом. При этом сохранять php-файлы необходимо в кодировке UTF-8, а обновлять переведённые вручную темы или плагины, как и создавать мультиязычные сайты, уже не получится. Ручного перевода в этом случае потребуют также сообщения в файлах JavaScript для данной темы или плагина.

Общие рекомендации по разработке сайтов на основе WordPress

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

  1. Исходные файлы ядра WordPress и установленные плагины – табу для корректировки. Инновации разумнее создавать на основе существующих плагинов (в виде форков) либо путём изменения выбранной ранее темы оформления.
  2. Для изменения поведения сайта применяют механизм создания хуков (зацепок). В этом случае обработка выводимых данных происходит с использованием различных функций, а также может быть назначено или переопределено любое действие в сценарии поведения сайта.
  3. Для описания в плагинах или файле functions.php темы оформления новых типов записей, форматов, виджетов, шорткодов применяют стандартные способы.
  4. Включенный режим отладки WordPress во время создания уникального плагина или темы будет предупреждать об ошибках в создаваемом коде. Они могут сразу выводиться на экран или записываться в специальный лог-файл.
  5. Процесс создания новых компонент существенно облегчает использование документации для разработчиков, размещённой в разделе http://codex.wordpress.org, и широко представленные в сети Интернет примеры и рекомендации сообщества разработчиков WordPress.