WordPress как Система Управления Контентом

Как мы видели, возможности вордпресса, практически, бесконечны. То, что начиналось как скромная блоговая платформа, названная b2/cafelog в 2001 году, сейчас крепкая и гибкая система для управления контентом (CMS).

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

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

Пользовательские поля

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

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

Для этого создается пользовательское поле, называемое «thumbnail», в которое записывается урл изображения https://supersite.ru/images/thumbnail-01.jpg. Таким образом мы привязали этот адрес к записи, не вписывая его непосредственно в текст записи.

Загрузка изображения
Загрузка изображения

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

  1. $post_ id — определяет пост, связанный с пользовательскими данными
  2. $key — определяет ключ желаемого значения пользовательских данных
  3. $single — указывает, следует ли возвращать данные в виде массива или строки

В целом это выглядит вот так

<?php get_post_meta($post_id, '$key', $single); ?>

Чтобы определить параметр ID, и соответственно $post_id , используем $post->ID, которая требует функцию, размещенную внутри цикла. Для параметра $key будем использовать название ключа, который в данном случае название пользовательского поля – thumbnail. И так как мы хотим получить результат в виде строки, $single будет установлен в значение true (истина).

И готовая функция будет выглядеть как

<?php get_post_meta($post->ID, 'thumbnail', true); ?>

Мы уже почти приехали. Т.к. этот код возвращает в виде результата урл картинки — нужно его вывести в шаблоне

<?php echo get_post_meta($post->ID, 'thumbnail', true); ?>

не в конкретно таком виде — так как это отобразит урл картинки, а внутри тега img

<a class="postThumb" href="<?php the_permalink() ?>">
<img src="<?php echo get_post_meta($post->ID, 'thumbnail', true); ?>" />
</a>

Будучи размещенный внутри цикла, этот код будет выводить картинки-превью для всех записей. А с помощью css можно задать нужные нам способы отображение thumbnail картинок

.postThumb {
float: left; clear: none;
margin-right: 10px;
}

Для демонстрации гибкости этого метода покажем, как переместить эти картинки в сайдбар. Хитрость заключается в понимании того, что get_post_meta() требует наличия цикла. Поэтому для отображения картинок в сайдбаре, создадим там второй цикл.

Как было разобрано ранее, в главе 4.1, get_posts() идеально подходит для такой задачи. Поэтому после добавления кода вывода изображений этот дополнительный цикл в сайдбаре будет выглядеть так

<?php // второй цикл для превьюшек
global $post; $args = array('showposts=10&offset=0'); 
$custom_posts = get_posts($args);
foreach($custom_posts as $post) : setup_postdata($post); ?>
<a class="postThumb" href="<?php the_permalink() ?>">
<img src="<?php echo get_post_meta($post->ID, 'thumbnail', true); ?>" />
</a>
<?php endforeach; // конец второго цикла ?>

Обратите внимание, какие параметры были переданы в get_posts: showposts определил количество записей, offset определил, что сдвига не будет и будут выбраны те же 10 записей, что были использованы в первом цикле.

Этот пример показывает, как можно с помощью пользовательских полей преобразовать Вордпресс. Вместо публикации статических страниц и ленты записей, можно выражать свои замыслы с помощью различных изображений, медиа, дополнительной информации, полей и меню. Т.е. не ограничиваться одним только содержимым поля the_content()

Подытожим — пользовательские поля рулят!

Пользователи, роли и разрешения

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

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

  • Суперадминистратор — всемогущий пользователь с полным контролем над всем, существует только в Мультисайт установках Вордпресса.
  • Администратор — суперадминистратор для обычного, одиночного вордпресс, с полным доступом и правами ко всему, что есть на сайте.
  • Редактор — может публиковать и редактировать любые записи на сайте.
  • Автор — может публиковать и редактировать только свои записи на сайте.
  • Участник — может писать и редактировать свои записи, но не публиковать их.
  • Подписчик — зарегистрированный посетитель сайта без каких-либо прав.

Более подробная раскладка приведена тут https://codex.wordpress.org/Roles_and_Capabilities

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

Некоторые особые возможности для подписчиков можно создать. Функция is_user_logged_in() опознает зарегистрированного подписчика, поэтому таким способом можно, например, отображать им дополнительный контент, скрытый для простых посетителей сайта.

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

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

Категоризация, теги и пользовательская таксономия

Также вордпресс предлагает расширенные организационные возможности через систему распределения по рубрикам и проставление тегов. Изначально рубрики могут служить для сегментирования записей, например, на Фильмы, Музыку и Еду, тогда как теги могут использоваться для пицца, чипсы, комедия, рок и поп.

Больше о таксономии можно почитать тут https://codex.wordpress.org/Taxonomies

Записи могут принадлежать к любому количеству рубрик и быть помечены любым количеством тегов. При правильном подходе это поможет структурировать контент сайта.

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

  • category — используется для разделения записей на различные категори
  • post_tag — используется для пометки записей различными тегами
  • link_category — используется для разделения ссылок на различные категории

В общем, теги и рубрики связаны с таксономией и называются элементами. Таким образом, теги записей – это элементы таксономии post_tag, а категории – это элементы таксономии category.

Ну и как вся эта таксономия мамбо-юмбо поможет использовать вордпресс как CMS? В основном, таксономии предлагают нам другой уровень классификации и организации контента. Будучи созданной, новая таксономия может получить сколько угодно элементов (тегов или категорий).

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

Например, публикация о «Контактная форма Ajax» будет классифицирована как то так:

  • Topics – ajax, forms, wordpress
  • Languages – javascript, php, sql
  • Applications – blogs, e-commerce

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

Шаблоны страниц

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

Рассмотрим типы страниц и как особенные шаблоны можно применить к ним:

  • Страница Поиска — отображать в результатах поиска только заголовки записей
  • Страница Архивов — организовать огромное количество контента с помощью тегов шаблонов и множественных циклов
  • Страница Архивов Тегов — отображать облако тегов вместе с популярными и недавно добавленными тегами.

Реализовать пользовательские шаблоны страниц легко. Шаблон страниц по умолчанию обычно называется page.php. Если не создается никакой пользовательский шаблон, то все страницы отображаются с использованием только этого файла. Чтобы создать свой новый тип шаблона страницы, например, для шаблона без сайдбаров и заголовка, создадим файл внутри файлов шаблона с названием page-nosidebar-notitle.php и разместим следующий код:

<?php /*
Template Name: No Sidebar No Title
*/ ?>

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

Страницы, Рубрики и Теги

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

Пример сайта с вложенной структурой контактной информации — в соответствии с структорой отделовкоманд.

Вложенная структура
Вложенная структура

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

Динамическое меню

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

wp_list_pages()

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

wp_get_archives()

Автоматически создает списки записей сайта по годам, месяцам или дням. И также включает большое количество настроек.

wp_list_categories()

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

wp_tag_cloud()

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

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

  • WP-PageNavi https://wordpress.org/plugins/wp-pagenavi/
    Заменяет архивную навигацию (раньшепозже) на постраничную, выводя строку с ссылками на все страницы сайта, помогая посетителям и поисковым ботам быстро получить доступ к любой записи.
  • WordPress Navigation List Plugin NAVT https://wordpress.org/plugins/wordpress-navigation- list-plugin-navt/
    Добавляет полный контроль над созданием, стилизацией и наполнением навигации сайта с легким драг-н-дроп интерфейсом
  • WP-dTree https://wordpress.org/plugins/wp-dtree-30/
    Создает навигационное дерево для страниц, записей, ссылок и рубрик с впечатляющими визуальными эффектами.
  • Sub Pages widget https://wordpress.org/plugins/subpages-widget/
    Отображает дочерние страницы по отношению к текущей.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Scroll Up