Description
You’ve just inherited a LearnDash site. Now answer one simple question: what’s actually in this course?
Every LearnDash professional knows the ritual. You open the Course Builder. You scroll. You click a lesson open, glance at its topics, click it shut. You open the next one. Somewhere around lesson eleven you lose track of whether the quiz you saw earlier belonged to a topic or a lesson. You still don’t know if anything is stuck in draft, whether that final exam actually has questions in it, or why the client swears there’s a “Module 7” that you cannot find anywhere. There is no page in LearnDash — none — that simply shows you the whole course at once.
Course Content Map for LearnDash is that page. Pick a course, and the entire structure — course → lessons → topics → quizzes — renders as one readable, expandable tree on a single screen. Every problem a course can quietly accumulate is highlighted inline, in red, where you can’t miss it. And when you’ve seen it, you can hand it to someone else: print it, save it as a PDF, or export it as Markdown or CSV.
Built for three people
The agency auditing an inherited site. A new client hands you a login and says “our previous developer built this.” Before you can quote a single change, you need to know what exists. The Content Map turns a half-day of builder archaeology into a five-minute read — and the exported document becomes page one of your audit deliverable.
The course author planning a restructure. You can’t rearrange what you can’t see. With the full tree in front of you — question counts, drip schedules, draft steps and all — deciding what moves, what merges, and what gets cut becomes a pencil-and-paper exercise instead of forty browser tabs.
Anyone producing documentation or a client handover. “Send me an overview of the course” should not be an afternoon of copy-pasting titles into a Google Doc. One click exports a clean, structured Markdown document; another prints a client-ready PDF report with your site’s name on it.
The map: everything, on one screen
Under LearnDash LMS → Content Map, choose any course and get the complete hierarchy as an expandable tree. Every node shows the details that matter when you’re assessing a course:
- Title and type — lesson, topic, or quiz, colour-coded so the levels read at a glance.
- Post status — draft, pending, and private steps get an amber badge. Draft steps are the single easiest thing to miss in the Course Builder, because the builder shows them exactly like published ones — and your learners hit a hole in the course you didn’t know was there.
- Drip / availability — “drips 14 days after enrolment” or “available from March 1” appears right on the lesson, so the release schedule of the whole course is visible in one place instead of buried in per-lesson settings.
- Quiz question count — every quiz shows how many questions it actually contains. A quiz with zero questions gets a red warning, because a learner who reaches it gets an empty screen and a support ticket gets written.
- Sample flag — steps marked as sample content are labelled, so you can see exactly what a non-enrolled visitor can reach.
- Edit link — every node links straight to its edit screen. See a problem, click, fix it, come back.
Lessons collapse and expand individually (they’re native, accessible disclosure elements — no JavaScript framework, no lag on huge courses), and Expand all / Collapse all buttons work the whole tree at once.
The summary bar: the course in one sentence
Above the tree, a summary bar totals the course: lessons, topics, quizzes, questions, and total steps — followed by warning counts for anything that needs attention: draft steps, quizzes with zero questions, steps with no content, and orphaned steps. A healthy course shows a single green “No problems found.” An inherited mess shows you, honestly and immediately, how much work you’re quoting for.
Problem highlighting: the audit that runs itself
Four classes of problem are detected automatically and flagged inline, in red, on the exact node where they live:
- Unpublished steps — drafts, pending review, private — the invisible holes in a learner’s path.
- Quizzes with zero questions — structurally present, functionally broken.
- Steps with no content — lessons and topics whose body is empty; placeholders someone created and forgot.
- Orphaned steps — the sneakiest one. These are lessons, topics, or quizzes that are assigned to the course but were never placed in its structure — they exist in the database, they may even be reachable by URL, but they appear nowhere in the builder’s tree. The Content Map lists them in their own section, because nobody ever finds them by hand. This is very often where the client’s mysterious “Module 7” turns out to be hiding.
The Document view: a client-ready report in one click
The toolbar’s Document view (Print / PDF) button opens the map as a standalone report — no WordPress admin chrome, no menus, no noise. Just a clean, professionally typeset document: a cover header with the course title, your site name and the generation date; a row of stat cards; the complete structure; the orphaned steps; and an “Issues to review” list. You see exactly what the client will see, on screen, before committing to anything.
Then one click on Print / Save as PDF and your browser produces the finished PDF. There is deliberately no bundled PDF library — no dompdf, no TCPDF — because those add megabytes of third-party code, a history of security advisories, and memory failures on shared hosting. Your browser already contains the best PDF renderer ever shipped; the plugin simply gives it a beautiful page to render. The result works identically on every host, with every alphabet, at any course size.
Exports: Markdown for documents, CSV for data
Markdown export is the feature agencies end up using weekly. It produces a structured document — heading, summary line, the full nested outline with statuses, drip schedules and question counts as annotations, an orphaned-steps section, and an issues list — that pastes perfectly into Notion, Confluence, Google Docs, GitHub, or an email. It’s not a frozen artifact like a PDF; it’s living documentation your team keeps editing. Export the same course a month later and a simple diff shows you exactly what changed.
CSV export gives you the same tree as flat data — depth, type, title, status, drip, sample flag, question count, problems, edit URL — ready for a spreadsheet, a content inventory, or a migration plan.
Both exports are secured with nonces and capability checks, and both are careful about output integrity: the plugin clears any stray output buffering before streaming, so the files arrive clean even on development servers with PHP notices enabled.
The front-end syllabus shortcode: SEO you already wrote
Add [ld_course_content_map id="123"] to any page and the course structure renders as a clean, semantic nested outline on the front end — a professional “What’s inside this course” section for your sales page. Prospective students see the full curriculum; search engines see exactly the kind of structured, keyword-rich content that ranks course pages.
The public view is strictly filtered: only published steps appear, and statuses, problem flags, and edit links never leak. Your drafts and your audit findings stay private. An optional counts="yes" attribute shows question counts; the shortcode even infers the course automatically when placed in a course context.
Fast on big courses, safe on every course
A course with hundreds of steps maps in milliseconds after the first load, because the built map is cached in a transient and reused until it’s stale. The cache flushes itself automatically the moment any course, lesson, topic, quiz, or question is saved or deleted — you never look at yesterday’s structure — and a “Refresh map” button forces a rebuild whenever you want certainty. The orphan scan is capped and every query bounded, so the screen stays responsive even on sprawling sites.
And the plugin is 100% read-only. It never modifies your courses, steps, settings, or enrolments; the only thing it ever writes is its own cache entry. Deactivate and delete it, and your site is exactly as it was — no tables, no options, no residue. It’s built defensively around LearnDash internals: every LearnDash function call is guarded, so a LearnDash update that removes an API degrades a feature gracefully instead of white-screening your admin. If LearnDash is deactivated entirely, the plugin quietly does nothing at all.
Engineering standards
The entire codebase passes the official WordPress Coding Standards (WPCS) with zero errors and zero warnings — the same ruleset professional plugin review teams run. All output is escaped, all input sanitised, all actions capability-checked and nonce-protected. It’s translation-ready with a complete .pot file, GPL-licensed, and structured for developers: the map builder, renderer, and exporters are cleanly separated classes, so extending the plugin — or reading it to learn from — is straightforward.
Requirements
- WordPress 5.8+ (tested up to 7.0) • PHP 7.4+
- LearnDash LMS 4.x
- No other dependencies — no PDF libraries, no JavaScript frameworks, nothing to conflict with your stack
What you get
- The plugin zip — installs like any WordPress plugin (Plugins → Add New → Upload)
- The Content Map screen under the LearnDash LMS menu
- The Document view with Print / Save as PDF
- CSV and Markdown export, the front-end syllabus shortcode, and the print stylesheet
- Updates and support per the terms on this site
FAQ
Will it change anything in my courses?
No. It reads your course structure and displays it. The only write it ever performs is its own cache transient.
How is this different from the LearnDash Course Builder?
The builder is for editing: it shows one course, requires clicking each lesson open, hides post statuses, and exports nothing. The Content Map is for understanding and communicating: everything visible at once, problems flagged, printable, exportable.
My course has 300+ steps. Will it cope?
Yes. The map builds once and caches; the tree uses native disclosure elements that render instantly; queries are bounded. Large courses are exactly what it’s for.
Does the front-end shortcode expose drafts or internal notes?
No. The public syllabus shows published steps only, with no statuses, no problem flags, and no edit links.
Can I make the PDF match my branding?
The document already carries your site name and clean neutral styling. Because it’s rendered by your browser from a normal web page, a small CSS filter is all a developer needs to restyle it.
Does it detect content problems automatically?
Yes — four kinds, inline and in the summary: unpublished steps, quizzes with zero questions, steps with no content, and orphaned steps assigned to the course but missing from its structure.
What happens if I deactivate LearnDash?
The plugin detects it and stands down with an admin notice. No errors, no white screens.
LearnDash® is a registered trademark of LearnDash LLC / Liquid Web. This plugin is an independent product and is not affiliated with, endorsed by, or sponsored by LearnDash. Licensed GPL-2.0-or-later.





Reviews
There are no reviews yet.