Презентация к вебинару по cms wordpress

36
CMS WordPress Более 20% интернета Презентация для вебинара http://geekbrains.ru/events/73 Автор: Евгений Холин ([email protected])

Upload: -

Post on 09-Aug-2015

181 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Презентация к вебинару по CMS WordPress

CMS WordPressБолее 20% интернета

Презентация для вебинара http://geekbrains.ru/events/73

Автор: Евгений Холин ([email protected])

Page 2: Презентация к вебинару по CMS WordPress

История создания

• CMS WordPress впервые увидела свет в 2003 году;• Она создавалась и развивается как OpenSource проект;• Изначально CMS была предназначена только для блогов;• В 2004 году в версии 1.2 появились плагины;• В 2005 году в версии 1.5 появились темы и статические страницы;• В 2007 году была выпущены версии 2.2, которая включала в себя

виджеты, поддержку Atom feed и была более быстрой и удобной, а также версия 2.3, в которую была включена поддержка таксономий;

Page 3: Презентация к вебинару по CMS WordPress

История создания

• В 2008 году было выпущено несколько версий (2.5 – 2.7), которые значительно приблизили CMS к её современному виду, одним из самых значительных нововведений было автоматическое обновление самой системы, подключенных плагинов и тем, а также переработанное ядро CMS, существенно ускорявшее её работу;

• В 2011 году была выпущена версия 3.0, в неё был включен ряд новых API, а также поддержка мультисайтовости – на одной CMS можно было сделать несколько сайтов, управляемых из единой панели администрирования;

Page 4: Презентация к вебинару по CMS WordPress

История создания

• С 2011 по 2013 год было выпущено ряд версий, благодаря которым на WordPress стало возможным быстро запускать сайты с нуля без написания единой строчки кода. В это время активно развивались репозитории плагинов и тем на Wordpress.org

• В 2014 году была выпущена версия 4.0, современная версия WP – 4.2.2

• Сейчас команда разработчиков WordPress идет по пути дальнейшего улучшения и совершенствования системы, в планах – добавление новых API и расширение функциональности.

Page 5: Презентация к вебинару по CMS WordPress

Причины популярности WordPress• Устанавливается на любой хостинг с поддержкой PHP/MySQL, есть

множество хостингов с уже предустановленной WordPress;• Чтобы начать работу – нужно просто добавить свой контент, не

требуется долго настраивать и писать код;• Все настройки CMS – через интуитивно понятный веб-интерфейс;• CMS переведена более чем на 40 языков, среди которых и русский;• Можно существенно изменить внешний вид сайта на WordPress с

помощью тем – на выбор несколько десятков тысяч как бесплатных, так и платных тем.

1. Простая в использовании

Page 6: Презентация к вебинару по CMS WordPress

Причины популярности WordPress

• Функциональность WordPress можно изменить до неузнаваемости с помощью плагинов, которых также доступно несколько десятков тысяч. Интернет-магазин, landing page, каталог – все это можно сделать на WordPress без единой строчки кода.

• Плагины и темы устанавливаются в несколько кликов мыши.• Есть много информации для новичков, в том числе и на русском

языке.

1. Простая в использовании

Page 7: Презентация к вебинару по CMS WordPress

Причины популярности WordPress

• Низкий порог входа – чтобы сделать тему для WordPress, достаточно самых минимальных знаний PHP и среднего уровня владения HTML и CSS. Например, можно взять костяк темы с http://underscores.me и добавить лишь дизайн с помощью CSS, не меняя ни структуру темы, ни её функциональность;

• Хорошая документация – на основном справочном ресурсе http://codex.wordpress.org описана вся функциональность WordPress, приведена информация по всем функциям, фильтрам и хукам. Но большая часть информации на английском языке.

2. Простая в разработке

Page 8: Презентация к вебинару по CMS WordPress

Причины популярности WordPress

• Много подробных курсов, уроков и отдельных статей как для новичков, так и для продвинутых программистов:

• http://codex.wordpress.org/WordPress_Lessons• http://www.wpbeginner.com/• http://code.tutsplus.com/categories/wordpress

• Благодаря различным API реализация многих вещей на WordPress не требует написания огромного количества кода;

• Легко расширяемая – темы можно делать с помощью Bootstrap или Foundation, можно подключать любые JS-фреймворки и скрипты как к теме, так и к системе администрирования.

2. Простая в разработке

Page 9: Презентация к вебинару по CMS WordPress

Структура WordPress

Вся CMS построена вокруг записей (Post). Записи – это краеугольный камень WP (https://codex.wordpress.org/Post_Types)Существует пять стандартных типов записей в WordPress:1. Posts - записи, привязанные к хронологии, изначально используемые в блоге. Могут содержать текст, изображения и т.д. Есть предустановленные форматы записей, также можно создавать свои. Посты обычно выводятся по хронологии и используются для формирования Atom (RSS) фидов. Записи могут быть структурированы с помощью таксономий: категорий и тегов. Если включена поддержка ЧПУ – записи структурируются также по хронологии в URL: http://site.url/2015/05/12/sample-post/

Типы записей

Page 10: Презентация к вебинару по CMS WordPress

Структура WordPress

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

В обычной ситуации страницы не могут быть организованы с помощью таксономий, но это можно изменить с помощью плагинов или настройки темы: https://codex.wordpress.org/Function_Reference/register_taxonomy и https://codex.wordpress.org/Function_Reference/add_post_type_support

Типы записей

Page 11: Презентация к вебинару по CMS WordPress

Структура WordPress

3. Attachments – любые вложения: изображения, аудио и видеофайлы, документы PDF и т.д. Они могут быть как прикрепленными к записям/страницам, так и существовать сами по себе.Вложение (в стандарте – только изображения) может быть использовано как миниатюра записи (https://codex.wordpress.org/Post_Thumbnails). Изначально это была обычная картинка для привлечения внимания к записе, сейчас мы уже привыкли видеть такие картинки в блогах, новостных сайтах – в общем, во всем интернете.

Типы записей

Page 12: Презентация к вебинару по CMS WordPress

Структура WordPress

4. Revisions – это черновик записи или страницы. Не особо нужная функция, если у сайта (блога) один администратор, но если у сайта несколько авторов и редакторов – крайне незаменимая вещь.

5. Navigation Menu – это запись, которая содержит в себе информацию об одном пункте меню: название, ссылку и подчиненность. С помощью этого типа записей можно легко и просто создавать многоуровневые меню.

Типы записей

Page 13: Презентация к вебинару по CMS WordPress

Структура WordPress

Custom Post Types – настраиваемые типы записей. Вы можете создать любой настраиваемый тип записи и добавить к нему поддержку любой функциональности, которая есть в WordPress: таксономии, иерархическую структуру, миниатюры, настраиваемые поля (мета-записи) и т.д.

Благодаря поддержке Custom Post Types WordPress стала такой гибкой и популярной CMS. Плагины галерей, слайдеров, e-commerce и т.д. – всё это работает именно на кастомных типах записей.

Custom Post Types создаются с помощью функции register_post_type (https://codex.wordpress.org/Function_Reference/register_post_type)

Типы записей

Page 14: Презентация к вебинару по CMS WordPress

Структура WordPress

Таксономии (Taxonomies - https://codex.wordpress.org/Taxonomies) в WordPress – это основной способ горизонтальной связи записей. Существуют следующие таксономии:1. Категория (Category) 2. Тег (Tag)3. Категория ссылки (Link category)4. Формат записи (Post format)5. Настраиваемая таксономия (Custom taxonomy)Некоторые таксономии могут образовывать многоуровневую иерархию, например, категории и настраиваемые таксономии.

Таксономии

Page 15: Презентация к вебинару по CMS WordPress

Структура WordPress

Самые популярные виды таксономий: категории и теги.Категории – лучший способ распределить ваш контент по полочкам, особенно хорошо подходит для новостных сайтов и блогов. Одной записи может быть присвоено несколько категорий.Категории участвуют в ЧПУ – формируется URL вида /category/content/Теги – ассоциативный способ каталогизации контента. Нет четкой иерархии, зато по ассоциациям можно выстраивать связь между различными постами. Все теги на сайте могут быть выведены как облако тегов.Теги также участвуют в ЧПУ – формируется URL вида /tag/content/В шаблоне сайта можно настраивать вывод списка записей или одной записи в зависимости от категории или тега. Таким образом, мы можем очень гибко выводить наш контент.

Таксономии

Page 16: Презентация к вебинару по CMS WordPress

Структура WordPress

Менее популярные таксономии: категория ссылки и формат записи.Категория ссылки – такая же категория, но только для ссылки :) Так как каталоги ссылок в последнее время не пользуются популярностью, то и данная категория уже мало используется.Формат записи (http://codex.wordpress.org/Post_Formats) – удобная таксономия для блога. Позволяет настраивать внешний вид записи в зависимости от заданного формата. Есть несколько стандартных форматов, можно создать свой формат записи.

Таксономии

Page 17: Презентация к вебинару по CMS WordPress

Структура WordPress

Настраиваемые таксономии (Custom Taxonomies) обычно используются для настраиваемых типов записи, хотя их можно прикрепить к любому стандартному типу записи.Они включают в себя все свойства стандартных таксономий, могут быть иерархически организованы.Для чего это нужно? В первую очередь, для создания сложной иерархии, в которой нужно разделять наши записи по множеству признаков. При этом выстроить структуру, используя стандартные таксономии, не получается – она выходит слишком громоздкой.Пример – каталог книг с разделением по жанрам, авторам и т.д.

Таксономии

Page 18: Презентация к вебинару по CMS WordPress

Структура WordPress

В WordPress есть возможность для каждой записи сохранять и выводить неограниченное количество мета-данных или настраиваемых полей (Custom Fields, https://codex.wordpress.org/Custom_Fields).

Настраиваемые поля можно задавать в темах (не самый лучший вариант!) или в плагинах. Также их можно использовать, не написав ни строчки кода, достаточно просто установить плагин для работы с мета-данными, например MetaBox (http://metabox.io).

Мета-данные

Page 19: Презентация к вебинару по CMS WordPress

Структура WordPress

Плагины в WordPress – это, по сути, расширение функциональности CMS, порой до неузнаваемости. Назову лишь несколько популярных плагинов, которые преображают WordPress:• Woocommerce – делает из WordPress интернет-магазин;• bbPress – форум для WordPress;• BuddyPress – социальная сеть на WordPress;• MailChimp - управление e-mail подписками.Всего в официальном репозитории https://wordpress.org/plugins/ более 37 000 бесплатных плагинов. А в одном из самых популярных магазинов http://codecanyon.net более 3500 плагинов.

Плагины

Page 20: Презентация к вебинару по CMS WordPress

Структура WordPress

Разработать плагин для WordPress достаточно просто – это обычный PHP-код, можно использовать CSS и JS (в т.ч. и фреймворки).Естественно, код должен соответствовать стандартам WordPress, особенно если вы планируете размещать его в репозитории плагинов или продавать на различных маркетплейсах типа codecanyon.netБолее подробно о разработке плагинов: https://codex.wordpress.org/Writing_a_Plugin

Плагины

Page 21: Презентация к вебинару по CMS WordPress

Структура WordPress

Виджет (Widget, http://codex.wordpress.org/WordPress_Widgets) – частный случай плагина, изначально предназначался для вывода какой-то информации в сайдбаре (Sidebar, боковая колонка).Но, так как область сайдбара в теме WordPress можно задавать где угодно, не только сбоку, то виджеты стали появляться и в подвалах, и в шапках сайтов.

Виджеты

Page 22: Презентация к вебинару по CMS WordPress

Структура WordPress

Тема (Theme, https://codex.wordpress.org/Using_Themes) – составляет основу внешнего вида вашего сайта на WordPress. По сути, вся разработка сайта на WordPress у большинства разработчиков сводится к тому, чтобы сделать тему, подключить её и несколько плагинов к WP и настроить сайт.Неправильно, когда вся дополнительная функциональность типа Custom Post Types, реализуется в теме – она должна быть реализована в плагинах, темы отвечают только за внешний вид.Есть множество бесплатных тем, их можно скачать с https://wordpress.org, есть немало более качественных и привлекательных платных тем (пример магазина тем – themeforest.net).

Темы

Page 23: Презентация к вебинару по CMS WordPress
Page 24: Презентация к вебинару по CMS WordPress

Структура WordPress

На http://wphierarchy.com приведена полная иерархия файлов в теме, на самом деле все намного проще – по минимуму в теме должны быть файлы style.css и index.php. Все остальное – лишь расширяет функциональность и внешний вид темы.

Однако в темах все же больше, чем 2 файла, перечислю основные составляющие:

• 404.php – файл, отвечающий за страницу 404;

• archive.php – файл, отвечающий за вывод хронологического архива записей;

• author.php – файл, отвечающий за вывод страницы с информацией о конкретном авторе;

• category.php – файл, отвечающий за вывод списка записей одной категории;

• comments.php – файл, отвечающий за вывод формы для комментариев и списка комментариев;

• content.php – файл, отвечающий за вывод непосредственно контента записи, подключается в single.php или page.php, в свою очередь может подключать файлы, соответствующие разным типам записей;

• footer.php – файл, отвечающий за вывод подвала сайта;

Иерархия в темах

Page 25: Презентация к вебинару по CMS WordPress

Структура WordPress

• front-page.php – файл, используемый для вывода главной страницы сайта без списка записей. Очень удобно использовать для коммерческих сайтов, где на главной странице не нужны последние записи блога.

• functions.php – файл с дополнительными настройками темы, расширяет её функциональность;

• header.php – файл, отвечающий за вывод шапки сайта;

• index.php – файл, отвечающий за вывод списка записей или одиночной страницы на главной странице сайта;

• page.php – файл, отвечающий за вывод страницы сайта;

• search.php – файл, отвечающий за вывод результатов поиска по сайту;

• sidebar.php – файл, отвечающий за вывод боковой колонки сайта;

• single.php – файл, отвечающий за вывод одиночной записи;

• style.css – файл таблицы стилей сайта;

Иерархия в темах

Page 26: Презентация к вебинару по CMS WordPress

Структура WordPressСтруктура темы

Шапка сайта

Меню сайта

header.php

sidebar.php

Подвал сайтаfooter.php

Заголовок записиLorem ipsum dolor sit amet, consectetur adipiscing elit. Ut laoreet iaculis tortor, ut sodales ante pharetra porta. Vestibulum quis lectus justo. In mollis iaculis tortor, non placerat tortor vehicula id.

Заголовок записиLorem ipsum dolor sit amet, consectetur adipiscing elit. Ut laoreet iaculis tortor, ut sodales ante pharetra porta. Vestibulum quis lectus justo. In mollis iaculis tortor, non placerat tortor vehicula id.

index.phparchive.phpcategory.php

Так выглядит главная страница сайта (если отсутствует файл front-page.php): • шапка сайта, • список записей, • сайдбар, • подвал сайта.Аналогично выглядят страницы категории или архива записей.

Page 27: Презентация к вебинару по CMS WordPress

Структура WordPressСтруктура темы

Шапка сайта

Меню сайта

header.php

sidebar.php

Подвал сайтаfooter.php

Заголовок записиLorem ipsum dolor sit amet, consectetur adipiscing elit. Ut laoreet iaculis tortor, ut sodales ante pharetra porta. Vestibulum quis lectus justo. In mollis iaculis tortor, non placerat tortor vehicula id.

single.phppage.php

Так выглядит одна запись или страница.

Vivamus vehicula odio eros, non commodo massa convallis non. Integer varius magna faucibus, lobortis ligula eu, dictum purus. Sed id ipsum id orci fringilla semper. Proin laoreet volutpat euismod. Praesent at ullamcorper odio. Nunc suscipit posuere nunc, id euismod metus efficitur quis. Morbi vitae nibh varius, scelerisque est eu, sagittis sem. Etiam ornare diam ut ligula finibus dignissim.

Page 28: Презентация к вебинару по CMS WordPress

Структура WordPress

Фреймворки, которые расширяют функциональность WordPress:• Redux Framework (http://reduxframework.com/)• Genesis Framework (http://my.studiopress.com/themes/genesis/)• Thesis Framework (http://diythemes.com/)

• Kirki WordPress Customizer – фреймворк, существенно расширяющий WordPress Customizer API (http://kirki.org/)

• http://underscores.me – базовый скелет для построения тем

Фреймворки для WordPress

Page 29: Презентация к вебинару по CMS WordPress

Структура WordPress

Функциональность сайта на WordPress может быть существенно расширена за счет использования API (Application Programming Interface, https://codex.wordpress.org/WordPress_APIs).Доступные API:

• Dashboard Widgets API – API для создания виджетов в панели управления WordPress

• Database API – набор интерфейсов для работы с базой данных WordPress, состоит из 3-х API:• Options API – API для работы с настройками плагина или темы (Options). Всё, что

хранится в таблице wp_options• Transients API – аналог Options API, но только для временной информации. Используется

обычно при кэшировании данных.• Metadata API – API для хранения мета-данных, используется для комментариев, записей

или пользователей. Всё, что хранится в таблицах wp_commentmeta, wp_postmeta и wp_usermeta

Обзор API WordPress

Page 30: Презентация к вебинару по CMS WordPress

Структура WordPress

И еще немного WordPress API:

• HTTP API – API для работы с HTTP-запросами. Используется для получения или отправки информации с/на удаленных серверов;

• File Header API – используется для получения заголовков из файлов тем и плагинов WP;

• Filesystem API – изначально создан для автообновления файлов WP, а также плагинов и тем, но в настоящее время используется для всех файловых операций внутри WordPress;

• Plugin API – API для разработчиков плагинов, состоит из хуков (hooks), событий (actions) и фильтров (filters):

• События используются для объявления каких-либо функций, подменяющих или дополняющих стандартные действия;

• Фильтры используются для обработки данных, полученных в результате какого-либо события;• Хуки используются для перехвата каких либо действий CMS, правило простое – сначала создаем событие,

потом подключаем его к какому-либо действию с помощью хука.• Подробно и на русском о создании плагинов: http://easy-code.ru/lesson/building-wordpress-plugin-part-one

Обзор API WordPress

Page 31: Презентация к вебинару по CMS WordPress

Структура WordPress

Это уже почти все API:

• Quicktags API – используется для добавления кнопок к стандартному редактору WordPress;

• Rewrite API – используется для изменения стандартного режима ЧПУ WordPress, незаменим при создании Custom Post Types;

• Settings API – существенно упрощает работу с настройками тем и плагинов, т.к. отвечает за вывод элементов интерфейса и сохранение настроек в БД;

• Shortcode API – API для создания шорткодов. Шорткод – это код, который вставляется прямо в запись (как вариант – в код темы), вызывает функцию и передает ей ряд параметров;

• Theme Modification API – позволяет работать с модификациями темы как с опциями WordPress. Хорошо работает в связке с WordPress Theme Customizer API.

• Theme Customization API – используется для настроек темы с помощью стандартного интерфейса "Appearance" → "Customize". Подробно и на русском: http://uwebdesign.ru/wordpress-customizer/

Обзор API WordPress

Page 32: Презентация к вебинару по CMS WordPress

Структура WordPress

Все, точно последние API:

• Widgets API – API для создания, сохранения и вывода виджетов;

• XML-RPC WordPress API – API для работы с интерфейсом XML RPC, позволяет удаленно получать и отправлять данные (записи, таксономии и т.д.) WordPress.

Отдельно упомяну про WordPress REST API – в настоящее время он не является полноценным официальным API и находится в разработке. Если говорить кратко – это интерфейс для работы с данными WordPress вне стандартной админки WordPress.

Или, что ещё более крышесносяще – это интерфейс для работы с любыми данными в админке WordPress.

На этом, пожалуй, все о WordPress API :)

Обзор API WordPress

Page 33: Презентация к вебинару по CMS WordPress

Немного о безопасности WordPressWordPress, как и все, что создано одним человеком, другим человеком может быть взломана. Но многие проблемы можно предотвратить заранее:• Рекомендуется устанавливать и использовать плагины, использующие различные методы

защиты от спама, например, Akismet или плагины с капчей;

• Рекомендуется отключать pingbacks и trackbacks;

• Рекомендуется отключать ссылки в комментариях или включать обязательную модерацию таких ссылок;

• Рекомендуется регулярно обновлять WordPress и все плагины до последних версий;

• Для защиты формы логина от bruteforce-атаки не придумали ничего лучше, чем пароль на папку wp-admin в .htaccess (https://wpcafe.org/hacks/kak-zashhitit-parolem-dostup-k-papke-wp-admin-v-wordpress/)

Page 34: Презентация к вебинару по CMS WordPress

Недостатки WordPress

• Невысокое качество тем и плагинов на wordpress.org, потенциально большое количество уязвимостей;

• Привлекательность для спаммеров и хакеров из-за высокой распространенности;

• Поддержка кода, написанного по устаревшим стандартам;• Требовательность к ресурсам – решается с помощью кэширования;• Бессмысленный WP Cron, что решается с помощью

define('DISABLE_WP_CRON', 'true') в wp-config.php;• Нарезка изображений, что решается с помощью

https://wordpress.org/plugins/otf-regenerate-thumbnails/;• Генерация множества ненужных адресов и дублей контента, что решается с

помощью https://wordpress.org/plugins/wordpress-seo/.

Page 35: Презентация к вебинару по CMS WordPress

Перспективы разработчика WordPress • Фриланс – наибольшего успеха можно добиться на англоязычных

биржах типа upwork.com, но начинать можно, имея минимальные знания CMS и с русскоязычных бирж типа fl.ru;

• Работа в веб-студии – можно без труда найти работу в офисе в любом более-менее крупном городе или удаленную работу;

• Разработка собственных продуктов – плагинов и тем и их последующая продажа.

Page 36: Презентация к вебинару по CMS WordPress

Благодарю за внимание!Жду ваших вопросов.