Статьи

Планирование базы знаний WordPress

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

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

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

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

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

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

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

Он будет содержать следующие типы контента:

  • Вопросы и ответы
  • Быстрые советы
  • Учебники
  • обрывки
  • связи
  • Видео

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

Моя аудитория разделена на две группы:

  • пользователи
  • Разработчики

Для разработчиков темы высокого уровня:

  • Разработка темы
  • Разработка плагинов
  • функции
  • Крючки действий и фильтров
  • Запросы и база данных

Для пользователей темы высокого уровня:

  • Панель инструментов
  • Добавление и редактирование контента
  • Медиатека
  • Установка, настройка и активация тем
  • Установка, настройка и активация плагинов
  • настройки
  • Управление сайтом

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

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

Определив, каким должен быть мой контент, я должен сопоставить его с типами контента WordPress.

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

WordPress поставляется с тремя типами контента:

  • сообщений
  • страницы
  • вложения

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

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

WordPress имеет две встроенные таксономии, которые вы можете использовать со своими постами, страницами и пользовательскими типами постов:

  • категория
  • тег

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

Если ваша база знаний имеет несколько типов контента, вы можете справиться с этим одним из трех способов:

  • Используйте один тип контента (например, посты) и используйте категории, чтобы определить, какой тип контента у каждого.
  • Используйте один тип контента (например, посты) и используйте пользовательскую таксономию для определения типа контента.
  • Зарегистрируйте тип записи для каждого из ваших типов контента.

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

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

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

Это означает, что моя база знаний будет использовать следующее:

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

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

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

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

Итак, мой сайт будет включать в себя:

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

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

Вот что будет на боковой панели:

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

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

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

Это значит, что мне понадобятся следующие файлы шаблонов:

  • index.php
  • page.php
  • archive.php
  • single.php
  • sidebar.php

Я добавлю один хук действия, который поможет мне заполнить боковые панели: tutsplus_sidebar действия sidebar.php в sidebar.php .

Я создам одну функцию, прикрепленную к этому хуку, которая будет содержать следующие списки:

  • ссылки на страницы архива для пользовательской темы терминов таксономии
  • ссылки на страницы архива для разработчиков темы таксономии термины
  • ссылки на архивы для терминов таксономии типа контента.

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

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

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

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