¿Añadir grupos y categorías (con seguridad) con WP-Discourse o la API?

Sí, es posible. Puedes hacer cualquier solicitud de API a Discourse desde WordPress usando el método de utilidad discourse_request, es decir:

use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$args =  array(
   "body" => "",
   "type" => "post"
);
$response = DiscourseUtilities::discourse_request( $path, $args );

Esto formateará la solicitud correctamente y utilizará la clave API y el usuario que has proporcionado en la configuración de WP Discourse. Necesitarás una clave global para las acciones a las que te refieres (si también estás usando la misma clave para la funcionalidad normal de WP Discourse).

Creación de un grupo

El endpoint que deseas es este: Discourse API Docs. No hay una lista completa de los parámetros en la documentación de la API, pero los encontrarás aquí: discourse/app/controllers/admin/groups_controller.rb at main · discourse/discourse · GitHub

Creación de una categoría

El endpoint que deseas es este: Discourse API Docs. Del mismo modo, la lista completa de parámetros está aquí: discourse/app/controllers/categories_controller.rb at main · discourse/discourse · GitHub

Ten en cuenta que la “configuración de seguridad” se maneja a través del parámetro permissions. Solo necesitas darle un objeto con los nombres de los grupos como claves y enteros de nivel de permiso como valores, por ejemplo:

{
  "cohort1": 2,
  "staff": 1
}

Encontrarás la lista de enteros de nivel de permiso aquí: discourse/app/models/category_group.rb at main · discourse/discourse · GitHub