Ведение проектов напрямую на сайте WordPress — востребованная задача для бизнес-сайтов, агентств и фрилансеров. В этой статье мы подробно разберём, как создать собственный менеджер проектов с автоматическим добавлением задач, пользователей и уведомлений. Это поможет централизовать управление и автоматизировать рутинные процессы без привлечения сторонних сервисов.
Выбор структуры данных для менеджера проектов в WordPress
Для начала необходимо определиться, как хранить проекты и задачи. Оптимальный вариант — использовать кастомные типы записей (Custom Post Types). Создадим два типа: wpbusiness_project для проектов и wpbusiness_task для задач.
Регистрация типов записей позволит использовать все преимущества WordPress — REST API, редактор, метаданные и права доступа.
Вот пример функции регистрации типов записей:
function wpbusiness_register_custom_post_types() {
register_post_type('wpbusiness_project', [
'labels' => [
'name' => 'Проекты',
'singular_name' => 'Проект',
],
'public' => true,
'has_archive' => true,
'supports' => ['title', 'editor', 'author'],
'show_in_rest' => true,
]);
register_post_type('wpbusiness_task', [
'labels' => [
'name' => 'Задачи',
'singular_name' => 'Задача',
],
'public' => true,
'has_archive' => false,
'supports' => ['title', 'editor', 'author'],
'show_in_rest' => true,
]);
}
add_action('init', 'wpbusiness_register_custom_post_types');С помощью этой функции вы создадите два типа записей, которые сразу будут доступны в панели управления и REST API.
Связывание задач с проектами через метаполя
Чтобы связать задачи с конкретным проектом, добавим метаполе wpbusiness_project_id в задачи. Это позволит быстро получить все задачи, относящиеся к проекту.
Пример добавления метаполя при сохранении задачи:
function wpbusiness_save_task_project_link($post_id) {
if (get_post_type($post_id) !== 'wpbusiness_task') {
return;
}
if (isset($_POST['wpbusiness_project_id'])) {
update_post_meta($post_id, 'wpbusiness_project_id', intval($_POST['wpbusiness_project_id']));
}
}
add_action('save_post', 'wpbusiness_save_task_project_link');<В интерфейсе редактирования задачи можно добавить поле для выбора проекта, используя метабоксы или ACF, для удобства менеджера.
Автоматическое создание задач при добавлении проекта
Часто при создании проекта нужно сразу добавить типовые задачи. Реализуем автоматическое создание набора задач после создания проекта.
Пример функции, которая после публикации проекта создаст стандартные задачи:
function wpbusiness_create_default_tasks($post_ID, $post, $update) {
if ($post->post_type !== 'wpbusiness_project' || $update) {
return;
}
$default_tasks = [
'Анализ требований',
'Разработка дизайна',
'Верстка и программирование',
'Тестирование и исправление ошибок',
];
foreach ($default_tasks as $task_title) {
$task_id = wp_insert_post([
'post_title' => $task_title,
'post_status' => 'publish',
'post_type' => 'wpbusiness_task',
'post_author' => $post->post_author,
]);
if ($task_id) {
update_post_meta($task_id, 'wpbusiness_project_id', $post_ID);
}
}
}
add_action('wp_insert_post', 'wpbusiness_create_default_tasks', 10, 3);Теперь при создании нового проекта автоматически появятся четыре базовые задачи, связанные с этим проектом.
Уведомления и автоматизация бизнес-процессов
Для бизнес-сайтов важна автоматизация уведомлений. Например, можно отправлять email менеджеру при создании проекта или завершении задачи.
Пример отправки письма при публикации проекта:
function wpbusiness_notify_new_project($post_ID, $post, $update) {
if ($post->post_type !== 'wpbusiness_project' || $update) {
return;
}
$author = get_userdata($post->post_author);
$to = 'manager@example.com';
$subject = 'Новый проект: ' . $post->post_title;
$message = "Создан новый проект \"{$post->post_title}\" пользователем {$author->display_name}.";
wp_mail($to, $subject, $message);
}
add_action('wp_insert_post', 'wpbusiness_notify_new_project', 20, 3);Для более гибких уведомлений и задач можно использовать плагин Clearfy Pro, который расширяет возможности автоматизации и безопасности.
Интеграция с плагинами для управления проектами
Если нужен более продвинутый функционал, полезно рассмотреть плагины как WP Project Manager или Project Panorama. Но они часто избыточны для простых задач.
Для бизнес-сайтов на темах Reboot или Root можно встроить собственный менеджер на базе описанных выше решений с удобным кастомным интерфейсом.
Вывод и расширение функционала
Созданный менеджер проектов можно дополнить следующими функциями:
- Добавление статусов задач и проектов с помощью таксономий или метаполей.
- Реализация фронтенд-форм для создания и редактирования проектов и задач без доступа к админке.
- Использование REST API для интеграции с внешними сервисами и мобильными приложениями.
- Настройка прав доступа для разных ролей: менеджеры, исполнители, клиенты.
Такой подход позволяет гибко адаптировать систему под любые бизнес-процессы.
Используйте приведённые примеры в своих проектах, чтобы автоматизировать рутинные задачи и повысить эффективность работы с проектами в WordPress.