Popovses blog

Личный блог

Как создавать сайты, используя фреймворк WordPress?

29.12.2013

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

Как создавать сайты на WordPress

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

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

Почему удобно использовать WordPress?

Речь идет о разработке. Допустим, вам необходимо создать типичный сайт (визитка или каталог). Какие дальнейшие действия?

  • Пишем сайт на голом PHP (вместе с удобной админкой).
  • Пишем сайт на каком-нить фреймворке PHP.
  • Используем гибкую CMS.

Теперь подробнее. В первом случае вы хорошенько прокачиваете свой уровень PHP. Отлично! Для вас как для разработчика одни плюсы. Один минус — время. И поверьте, заказчику плевать на ваше удовлетворение от проделанной работы. Ему нужен готовый сайт и как можно быстрее. Конечно, выходом из этой ситуации может стать предварительно «изобретенный велосипед» в виде свой CMS, но зачем?

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

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

Я не зря написал «гибкую», так как некоторые CMS и вправду нас ставят в жесткие рамки. А вот гибкую систему можно изогнуть так как нам нужно.

Вообще почему разработчики пользуются фреймворками? Потому что это удобно! Благодаря фреймворку можно не задумываться о «тупом кодинге». А в случае с CMS WordPress вообще все просто! Мы создаем некую необходимую нам функциональность и говорим WordPress’у: «Я сделал такую-то штуку и хочу чтобы она работала на этом сайте. Разберись с этим». И все. Нам не нужно задумываться об устройстве базы данных, внутренней логике движка и т.д. Об этом всем позаботится WordPress.

Как создавать сайты на WordPress?

Я не буду здесь расписывать как установить WP, как сверстать и запрограммировать шаблон и т.д. Для этого есть Codex WordPress. К примеру, раз и два. Возможно об этом буду какие-то посты, но явно не сейчас.

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

С того момента, когда перестаешь относится к «записям» как к статьям на блоге, которые нужно делить по категориям, можно уже смело создавать различные сайты (визитки, каталоги, интернет-магазины и т. д.).

Хочется рассказывать приводя примеры, но так как я не хочу тратить время на создание «сайта для примера», буду рисовать схемки в Pint’е.

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

Итак, у нас есть готовая верстка каталога и установлен чистенький Worpdress. Заходим в административную панель и видим меню с левой стороны:

Как создавать сайты на WordPress

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

Мы видим типичную админку блога. Теперь в эту админку нужно добавить кнопку «Каталог». Или заменить «Записи» на «Каталог».

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

Woprdress дает нам возможность добавлять сколько угодно кнопок с любым функционалом. Продублируем функциональность «Записи» на кнопку «Каталог».

Для этого нужно добавить функцию register_post_type() в файл functions.php со всеми необходимыми аргументами.

Нажимаем на «Каталог» и видим меню из 4-х пунктов:

Как создавать сайты на WordPress

«Все записи» переименуем на «Все», «Добавить новую» так и оставим, а вот что делать с «Рубриками» и «Метками»? «Рубрики» можно переименовать на «Тип кузова», а «Метки» на «Цвет». Таким образом для каждой машины можно выбрать только один тип кузова и несколько цветов, если необходимо. Но с таким набором параметров каталог какой-то неполноценный выходит, ведь машины нужно еще как-то характеризовать, к примеру: марка, год выпуска, коробка передач, топливо, тип привода и т. д. Здесь к нам на помощь приходит замечательная таксономия в WordPress.

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

Добавляем register_taxonomy() с необходимыми параметрами в наш functions.php

Как создавать сайты на WordPress

Отлично, теперь у нас есть необходимая классификация.

Идем к следующей проблеме — цена. Цену каждому автомобилю нужно ставить индивидуально, а создавать для этого таксономию в виде «Меток» как-то нерационально. На помощь к нам приходят «Произвольные поля»

Все просто — создаем произвольное поле в пару кликов мыши, называем его «Цена» и далее проставляем для каждой машины цену. Так же можно поступить и с «Пробегом», если это б/у автомобили.

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

Итак, у нас есть посаженная на WordPress верстка и наполненная база данных автомобилей. Осталось поработать над тем, чтобы наш каталог полноценно заработал. Допустим, у нас есть все необходимые чекбоксы, инпуты, ползунки и т. д. для подбора необходимого нам автомобиля. Эту функциональность нужно связать с нашим WordPress, а именно с базой данных. Как я уже писал выше — нам не нужно задумываться о внутреннем устройстве базы данных, внутренней логике движка, SQL запросах и прочем. Нам достаточно сказать WordPress’у, какой автомобиль нам нужен и он вернет все, что попадает под запрос.

В этом нам помогает замечательный класс WP_Query. Здесь все очень просто. Создаем объект из WP_Query, предварительно передав ему необходимые параметры из того, что посетитель сайта накликает ползунками, чекбоксами и т. д., и получаем ответ.

Выглядит это примерно так:

Как создавать сайты на WordPress

Сразу говорю, эта схемка не показывает принцип работы движка WordPress, здесь я показал сам смысл работы с этой CMS. У нас есть шаблон, в котором мы программируем то, что нам нужно, «ядро», которое думает, и собственно сам HTML в браузере, который выглядит так, как мы запрограммировали в шаблоне.

Пожалуй, все. Получился такой небольшой рассказ о том, как создавать сайты на WordPress. Суть в том, что не нужно ставить себя в рамки «Блоги буду делать на WordPress, а визитки на Joomla и т.д.», если сама CMS не ставит таких рамок. Если вы создаете сайт на Вордпресс — не обязательно использовать в шаблоне sidebar.php или search.php, не обязательно на главную страницу выводить список каких-то записей. Да, WordPress это может, WordPress это умеет, но никто не заставляет это использовать. И наоборот, если вы не используете какие-то основные функции CMS — это не повод отказываться от нее.

Я и сам когда-то так думал. «Ага, блоги я делать умею, а для визиток выучу Joomla». И учил, тратил время, немного мучился с этим монстром. А потом открыл глаза пошире, плюнул на все это и ушел глубоко в WordPress. Правда, это тема уже для другой статьи.

Скоро увидимся. С Наступающим!

3 комментария:

  • Анатолий:

    Первый раз вижу такое, чтобы автор использовал схемы вместо скриншотов…

    • Popovses:

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

  • Марат:

    По мне, так нет никакой разницы, главное, чтобы материал был доступен и понятен для читателей.

Добавить комментарий