Добавить группы и категории (с безопасностью) через WP-Discourse или API?

Да, это возможно. Вы можете выполнить любой 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