WordPress the LMS: Working with LearnDash

LearnDash is a low-cost Learning Management System (LMS) plugin for WordPress.  Installing it adds LMS features to your WordPress instance, including courses, quizzes, certificates and progress reports.  In this post, I’ll review some of the ins and outs of working with LearnDash and how we used it to create Grade Hacks, our study skills program.


The WordPress admin menu after installing LearnDash.

The WordPress admin menu after installing LearnDash.

Installation of LearnDash is as straightforward as installing any plugin in WordPress.  You purchase the plugin at learndash.com, download the .zip file, and upload it to WordPress through the Plugins page.  Doing so adds new menu items to your WordPress admin panel including Lessons, Courses, Quizzes and Certificates and Advanced Quiz.

Setting up courses

Setting up your first course in LearnDash involves creating a course, then creating a lesson and associating it with the course.  If you wish to further divide your content you may create a topic and link it with a lesson*, or create a quiz and link it to a lesson.

Because the admin interface is organized by content type (course, lesson, topic, quiz) rather than by course, setting up a course is a bit of a disjointed process. You are constantly jumping between the the course, lesson, topic and quiz screens, linking them all together with course associations.  Many LMS platforms have you “select” or “enter” a course, with any subsequent actions you take applied automatically to that course.  It’s a more natural way of thinking and working because users tend to focus on one course at a time.  But due to the way LearnDash uses WordPress custom post types to implement the course, lesson, topic and quiz objects, creating that type of editing paradigm isn’t possible.

Thankfully, you eventually get used to jumping around and if you only have a few courses to develop it works quite well.  But if you intend to have many courses, with no way to filter lessons by course or topics by lesson, it could become tedious to find what you’re looking for.

After setting up a course, you must also  provide a way for users to access the course on the site’s front end, either through a menu or a link on some other page on your site.  You can link to the specific course or the default course list page (at /courses).

Creating content

A customized LearnDash lesson page.

A customized LearnDash lesson page.

Other than quizzes, LearnDash does not provide any content creation tools beyond the standard WordPress post/page authoring interface.  We leveraged the excellent Visual Composer plugin to set up some nice page layouts with sections to related resources and exercises.  We used Articulate Storyline to create content that provided a more immersive, interactive experience than static text and images.  Using shortcodes, we then embedded the Storyline content in several formats to target the various devices our users may be using to view the content.  On desktop and laptop, we instructed WordPress to display the Flash-based Storyline content, as this was “truest” to what we saw in the Storyline authoring environment.  On iPad, the content was displayed in the Articulate Player app, which provided a nice “native” experience for the learner. On other platforms, the system falls back to HTML5.

For quiz creation, LearnDash currently offers the most powerful assessment tools of any WordPress-based LMS, unfortunately wrapped in an awkward interface.  Functionality is accessed through standard or advanced quiz types, with standard being too basic for many applications and advanced offering a dizzying array of options.  Both types use  different interfaces for managing questions and you can’t switch between the two, so you may find yourself halfway through the creation of a standard quiz only to realize you need the functionality of an advanced quiz and have to start over.  The quiz UI could really use an overhaul that creates a single, unified quiz interface that exposes the most commonly used controls while hiding the rest for power users.

User Experience

The default course homepage using the "Twenty Fourteen" WordPress template.

The default course homepage using the “Twenty Fourteen” WordPress template.

Out of the box, the LearnDash user experience is quite good, providing an intuitive course/lesson/topic structure which works well for most situations.  Visually, course and lesson pages were redesigned in the version 1.5 release and now provide a simple, pleasing interface to the user.  You’ll run into small niggles here and there though; for example, after successfully completing a quiz, the learner must then click a button labeled “Click here to continue” for their progress to be recorded.  If they instead leave the quiz by some other method or close the window, their progress is lost and they are forced to retake the quiz.  The plugin author is aware of this issue and has promised a fix.

The experience of using WordPress as an LMS is also not without its quirks.  Logging into WordPress does not, by default, change the site’s menus or navigation, which means that logged-in users may have a hard time distinguishing between marketing pages and paid content.  We used the Nav Menu Roles plugin to display different menu items to logged-in users, which created the impression of a separate public site and learner portal.


LearnDash provides a number of options for customizing your LMS, as well as shortcodes for outputting various types of LearnDash content on any page or widget.  Like most plugins, LearnDash can be customized through CSS overrides in your template files or a CSS plugin.  Advanced developers used to working with WordPress hooks, however, will be disappointed. LearnDash includes few actions and filters, and those that are included are poorly documented.  LearnDash also does not support template overrides, so for major customizations you’re stuck making changes to core files.


The LearnDash plugin author, Justin Ferriman, is very responsive to customer feedback and maintains an active support forum available to paying customers only.  Users who post a question will usually receive a response within a day.


LearnDash is probably the most full-featured LMS plugin available for WordPress today.  It’s still early in its development, but it’s being updated quickly and once you get used to it you’ll find it’s capable of delivering a solid experience for your learners at a low cost.

In a future blog post we’ll cover the ins and outs of using LearnDash and WooCommerce to sell your courses online.

*In version, in addition to assigning topics to lessons you must also assign them to courses for them to be tracked properly.  This seems redundant since you assign topics to lessons, which are themselves assigned to courses, and will hopefully be updated in a future release.

author avatar
Ken Young
15 replies
  1. Alex
    Alex says:

    Thank you for your insight on Learndash. I actually purchased the plugin and although I like the functionality I am having difficulties achieving the integration into my WP theme to achieve what I want. I agree that Justin Ferriman provides excellent customer service and is very responsive to questions. One thing I am looking forward to is the possibility of a custom theme being provided by LearnDash themselves to make it less difficult for customers to get up and running smoothly. I think this could go a long way in making LD more accessible to people less skilled in theme modification.

  2. Tim
    Tim says:

    Ken, are you capable of setting up LearnDash and doing necessary coding for a nice fit?

    Justin Ferriman is indeed active and good at providing customer support, and substantive updates have come regularly. One thing that I have been longing for is for Justin to create a list of affordable developers who are familiar with LearnDash. Until then, as with other WordPress LMSs, you and any developer you hire are on your own to figure out how to use it.

    If there is a developer out there who can help, please contact me. Our school needs your help. 🙂

  3. Ken Young
    Ken Young says:

    Tim, we can definitely help you out. 🙂 I’ve sent you an email; send me some details on what you’re looking for and we can go from there.

  4. Ali
    Ali says:

    Hi ken, i’m also having trouble integrating LD with my template, please if you can also refer me out, it would be appreciated.


  5. HLD
    HLD says:

    How did you create LearnDash lessons using Visual Composer. I bought both plugins, but the VC only seems to be available in pages – not in lessons.

    Are you using a shortcode to display those VC created pages into a lesson? If so, how?


  6. Ryan Moore
    Ryan Moore says:

    To enable visual composer for lessons you have to go into visual composer settings (Settings –> Visual Composer) and check “sfwd-lessons”. You can also check the other “sfwd” post types to enable visual composer for them too. Let me know if that works for you!

  7. Celito Macachor
    Celito Macachor says:

    I’m almost embarrassed to ask, but is there a demo for this or more detailed instruction? I just purchased the plug in, and embedded Storyline content as SCORM packages in Moodle. I expect to use Storyline a lot with LD. Thanks

    “Using shortcodes, we then embedded the Storyline content in several formats to target the various devices our users may be using to view the content. On desktop and laptop, we instructed WordPress to display the Flash-based Storyline content, as this was “truest” to what we saw in the Storyline authoring environment. On iPad, the content was displayed in the Articulate Player app, which provided a nice “native” experience for the learner. On other platforms, the system falls back to HTML5.”

    • Ken Young
      Ken Young says:

      To display different content to users on different devices we used a plugin called WP Mobile Detect. You can find it in the WordPress plugin directory. Let me know if it works for you.

  8. Danica
    Danica says:

    I started out with another LMS which was very intuitive. I loved it. But it didn’t have all the features I needed. When I purchased LearnDash I thought it would be an easy transition, but it has been horrible. I keep hitting roadblocks. I am very discouraged. I wish I had someone to walk me through the final stages of getting my course online.

    • Ken Young
      Ken Young says:

      Sorry to hear that, Danica. LearnDash does taking some getting used to if you’re coming from a more “traditional” LMS.

      We do offer LearnDash consulting/customization services, so if you think that would help you get through the challenges you’re facing, feel free to reach out to us via the Contact link in the menu or use our project planner to send us some details on your project. You can find it here: https://www.uncannyowl.com/project-planner/



Please note that this is not a support forum. If you are experiencing issues on your site, please open a support ticket instead. Site-specific support questions submitted as comments will be unanswered.

Leave a Reply

Your email address will not be published. Required fields are marked *