Статьи

Реализация базы знаний WordPress в прямом эфире

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

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

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

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

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

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

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

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

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

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

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

Вы можете сделать это программно, используя add_role() , которая принимает следующие параметры:

1
<?php add_role( $role, $display_name, $capabilities );
  • $role — это уникальное имя для новой роли.
  • $display_name — это имя, которое будет отображаться на экранах пользователей.
  • $capabilities означает возможности для этой роли.

Если возможности новой роли отличаются от возможностей WordPress по умолчанию, вам может потребоваться добавить свои собственные, используя add_cap() . Затем вы можете использовать if ( current_user_can( $capability ) ) в своей теме или плагинах для определения кода, который будет запускаться, только если текущий пользователь имеет новую возможность.

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

Плагин для участников - добавить новую роль

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

Capability Manager Улучшенный плагин

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

Чтобы ограничить доступ к определенным страницам и / или сообщениям, сделайте их конфиденциальными, выбрав переключатель « Приватный » над кнопкой « Опубликовать» на экране редактирования сообщений.

Сделать пост приватным

Это ограничивает сайт только редакторами и администраторами, что может не подходить, если вы хотите, чтобы подписчики могли просматривать личные сообщения. Однако вы можете использовать add_cap() чтобы добавить возможность read_private_posts в дополнительные роли пользователя:

1
2
3
4
5
6
7
function tutsplus_add_private_cap() {
 
    $role = get_role( ‘subscriber’ );
 
    $role->add_cap( ‘read_private_posts’ );
}
add_action( ‘admin_init’, ‘tutsplus_add_private_cap’);

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

Если вы хотите сделать это без добавления кода, вы можете использовать плагин Members, чтобы добавить возможность read_private_posts в read_private_posts количество ролей.

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

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

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

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

1
2
3
4
5
6
7
8
9
function tutsplus_login_form() {
     
    if ( is_user_logged_in() ) {
        return »;
    }
 
    return wp_login_form( array( ‘echo’ => false ) );
     
}

Затем вы, при необходимости, tutsplus_login_form функцию tutsplus_login_form к своим шаблонам страниц или присоединяете ее к хуку в своей теме, возможно, используя условные теги для отображения только на определенных страницах или типах записей. Затем в своих шаблонах вы можете проверить, вошел ли пользователь перед отображением контента, используя тег if( is_user_logged_in ) .

Если вы хотите использовать плагин для этого, плагин Members позволяет вам ограничивать контент по ролям (например, подписчикам).

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

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

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

  • PHP версия 5.2.4 или выше
  • MySQL версии 5.0.15 или выше
  • Модуль Apache mod_rewrite (для постоянных ссылок)

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

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

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

В конце концов, выбор за вами (или за вашим клиентом).

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

Следующая задача — заполнить ее полезной информацией — незавидная задача для контент-команды!