Да, это возможно. Вы можете выполнить любой API-запрос к Discourse из WordPress, используя утилиту discourse_request, например:
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$args = array(
"body" => "",
"type" => "post"
);
$response = DiscourseUtilities::discourse_request( $path, $args );
Это правильно отформатирует запрос и использует API-ключ и пользователя, указанные в настройках плагина WP Discourse. Для действий, о которых вы упоминаете, вам понадобится глобальный ключ (если вы также используете тот же ключ для обычной функциональности WP Discourse).
Создание группы
Необходимый вам endpoint: Discourse API Docs. В документации по API нет полного списка параметров, но вы найдете их здесь: discourse/app/controllers/admin/groups_controller.rb at main · discourse/discourse · GitHub
Создание категории
Необходимый вам endpoint: Discourse API Docs. Полный список параметров также доступен здесь: discourse/app/controllers/categories_controller.rb at main · discourse/discourse · GitHub
Обратите внимание, что «настройки безопасности» обрабатываются через параметр permissions. Вам нужно передать объект, где ключами будут названия групп, а значениями — целые числа, обозначающие уровень доступа, например:
{
"cohort1": 2,
"staff": 1
}
Список целых чисел, соответствующих уровням доступа, вы найдете здесь: discourse/app/models/category_group.rb at main · discourse/discourse · GitHub