Gruppen und Kategorien hinzufügen (mit Sicherheit) mit WP-Discourse oder der API?

Ja, das ist möglich. Sie können jede API-Anfrage an Discourse von WordPress aus mit der Hilfsmethode discourse_request stellen, d. h.

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

Dies formatiert die Anfrage korrekt und verwendet den API-Schlüssel und den Benutzer, die Sie in den WP Discourse-Einstellungen angegeben haben. Sie benötigen einen globalen Schlüssel für die Aktionen, auf die Sie sich beziehen (wenn Sie denselben Schlüssel auch für die normale WP Discourse-Funktionalität verwenden).

Eine Gruppe erstellen

Der Endpunkt, den Sie benötigen, ist dieser: Discourse API Docs. Es gibt keine vollständige Liste der Parameter in den API-Dokumenten, aber Sie finden sie hier: discourse/app/controllers/admin/groups_controller.rb at main · discourse/discourse · GitHub

Eine Kategorie erstellen

Der Endpunkt, den Sie benötigen, ist dieser: Discourse API Docs. Ebenso finden Sie die vollständige Parameterliste hier: discourse/app/controllers/categories_controller.rb at main · discourse/discourse · GitHub

Beachten Sie, dass die “Sicherheitseinstellungen” über den Parameter permissions gesteuert werden. Sie müssen ihm lediglich ein Objekt mit Gruppennamen als Schlüssel und Berechtigungsstufen als Ganzzahlen als Werte übergeben, z. B.

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

Die Liste der Berechtigungsstufen als Ganzzahlen finden Sie hier: discourse/app/models/category_group.rb at main · discourse/discourse · GitHub