Creating a Custom Course List in LearnDash

Courses in LearnDash get put onto a ‘courses’ page automatically, but you do have another option.

For LearnDash sites that only have a few courses then keeping them on the default ‘/courses’ will usually do just fine. This template is taken from your theme’s blog post archives template. It is populated automatically – no further action needed on your part.

However, the more courses you have then the more likely it is you will want to create a custom course page. You have a few options on how you wish to accomplish this – the most popular of which is as follows.

STEP 1: Install Course Grid Add-on

The Course Grid add-on is a free add-on that we have available to LearnDash users. It will create a stylized course list which also comes with a few options.

For example, you can display courses by a certain category, use a featured video instead of an image, include a brief description, and more.

STEP 2: Create a New Page in WordPress

As simple as it sounds. Go to PAGES > ADD NEW and title the page “Available Courses” or something similar. Just don’t call it “Courses” or there will be a conflict with the auto-created courses page.

STEP 3: Insert the Course List Shortcode

All you have to do now is to insert the following shortcode onto the page:


However, I would recommend using the Shortcode Wizard to insert the shortcode onto the page. This will provide you with many more options on how you want to display the courses, as shown below:

STEP 4: Set-up a Redirect

Now all you have to do is point your ‘/courses’ page to the new page that you created in Step 2. There are a few ways to do this but one of the easiest is to just configure a 301 redirect.

If you’re not sure how to do this then you can use the following free 301 redirect plugin.

And that’s it!

To see an example, head on over to the LearnDash demo site.


Justin Ferriman is the co-founder and CEO of LearnDash, the WordPress LMS trusted by Fortune 500 companies, major universities, training organizations, and entrepreneurs worldwide for creating (and selling) their online courses. Let's Talk! | Twitter

16 Responses

  1. Can we have more than 3 levels which are content, topic and lessons?

    I mean if I want to have 5 levels in my course structure, would it be possible?

  2. How do I set the start date and end date once a student enrolls? I have enrolled and paid through Woocommerce. In one of your articles you say there is a date selector. I can’t find it.

  3. Hi,
    I want to show the expire Date on my course list using this shortcode [ld_profile].
    But i do not see any documentation related with this.
    Is it supported to show expire Date on the course list here?

    1. That will require custom code as there is not a setting to show expiration date doesn’t show in the profile.

  4. I skipped creating new page and redirect by copying the archive.php to archive-sfwd-course.php and replacing the loop with the shortcode. You will need to use the do shortcode function though.

    Example to place in phptags: echo do_shortcode(‘[ld_course_list col=”4″]’);

  5. Hi Travis,

    How would you replicate the course_list_template.php to build a custom template similar to courses list, to apply for a job list for example?
    I’ve duplicated the course_list_template.php and give it own name, however, when applied to the job list shortcode, didn’t work.
    By the way, I’m talking about WPJM, which comes with a default list view

    Appreciate your advice

Leave a Reply

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