learndash/list-topics searches and filters LearnDash topics. Pass a course_id for one course’s topics, or omit it for the whole library.
Topics sit under lessons, never directly under a course.
At a glance
| Ability | learndash/list-topics |
| Toolset | LearnDash — toolset/learndash |
| Group | LearnDash › Lessons, Topics & Quizzes |
| Requires | AcrossAI Pro, plus LearnDash LMS active on the site |
| Capability | manage_options |
| Safety | Read-only — changes nothing |
| Repeatable | Idempotent — running it twice leaves the same result |
| Ships in | AcrossAI Pro 0.9.16 and later |
How it works
That hierarchy rule is the thing to hold on to. A course contains lessons and quizzes; a lesson contains topics and quizzes; a topic contains quizzes only.
So a topic with no lesson is unreachable, and creating one does not place it — learndash/attach-step with the lesson as the parent does.
The library view finds those unplaced topics, which is the only way to see them. A course-filtered view shows only what is attached.
Topics are where most course content actually lives on a large course. A course with twelve lessons and eighty topics is normal, and the topic library is correspondingly the biggest listing in this suite.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
course_id | integer | No | One course’s topics. Omit for the whole library. |
search | string | No | Keyword search. |
status | string | No | Post status filter. |
per_page | integer | No | Rows per page. |
What comes back
| Name | Type | What it is |
|---|---|---|
topics | array | Each topic with its ID, title, status and attachment. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
What topics exist in this course?
It resolves to one call:
{
"ability": "learndash/list-topics",
"parameters": {
"course_id": 412
}
}Worth knowing
- A topic must sit under a lesson. It cannot hang off a course.
- Unplaced topics are only visible from the library view.
- Topics usually outnumber lessons several times over.
- Read-only.
Related abilities
- LearnDash Attach Step — place one under a lesson
- LearnDash Manage Topic — create or change one
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category