A Roadmap for WordPress as LMS

This talk attempts to give real, practical tips – and a roadmap – for developing a Learning Management System for your classroom with WordPress.

This talk was presented at the KOTESOL National Conference in Seoul on May 30, 2015. With this presentation, I tried to reduce the amount of theory (from my last LMS talk) and increase the amount of practical application steps that teachers could use to begin creating their own LMS websites with WordPress.

This slideshow is accompanied by my own “WordPress as LMS Roadmap” paper that gives step-by-step advice and instructions for building a (basic) WordPress LMS.

Although in the talk, I highlighted the major selling points for using WordPress as an LMS, I’ll refer you to my previous LMS talk titled “WordPress as LMS (Learning Management System)” for more information on WHY you might choose WordPress over the other available options. For the remainder of this post, however, I’ll focus on the practical steps involved in building your own class website in WordPress.

The Roadmap

Review: The 6 Things an LMS Needs to Do


  1. Communicate Objects (Courses, Lessons, Modules)
  2. Show Learning Timelines (Syllabus)
  3. Deliver Content (Dripped content = content that is only accessible at specified times)
  4. Assess & Track Student Progress (Quizzes, Tests, Attendance, Participation, Gradebook)
  5. Communicate with Students (Comments, Forums, Wikis, Chat)
  6. Provide Ongoing Resources (in some sort of library or collection)

Step 0: Get a website

You basically have 2 options: FREE or PAID and both have their upsides and downsides:

  1. FREE Advantages and Disadvantages
    1. (+) It’s FREE
    2. (-) Themes, plugins, and design options are limited. Plus, your URL will be either yourclass.wordpress.com or yourclass.edublogs.org – you won’t own your own .com
  2. PAID Advantages and Disadvantages
    1. (+) You can choose what to pay for and how much you’re willing to spend. You can buy your own yourclass.com URL, and can basically make any theme, plugin, and design choices you want
    2. (-) You pay for it. Some highly specialized themes, plugins, or features are sold separately

If you want a completely FREE site, you can still build a very functional classroom website in WordPress. I used a totally FREE installation of WordPress for the first 2 years of my LMS.

The remainder of this post will focus on creating a FREE WordPress LMS, although I will highlight some of the paid options you may wish to consider.

FREE Hosting Options

  1. Go to http://www.wordpress.com and sign up for a FREE account (you can upgrade later)
  2. Go to http://www.edublogs.org and sign up for a FREE account (you can upgrade later)

PAID Hosting Options

I’ve used Dreamhost.com since 2009 and have hosted dozens of personal and client websites there. You can manage every aspect of web hosting from there including:

  1. Setup Step 1: Buying your URL Domain name
  2. Setup Step 2: Installing WordPress with a One-Click Installer
  3. Setup Step 3: Setting up email inboxes @yourclass.com
  4. Support: Dreamhost also has a large Wiki for support for its services and
  5. Support: They have a very helpful support staff and are active on Twitter

If you want to go with Dreamhost, I can offer 2 months of FREE hosting on a year plan if you sign up with this link AND enter the code WPMUJJ as a discount code when you sign up.

Step 1: Communicate Objects (Posts)

After getting setup with a WordPress website and logging into the backend, you have the option to customize your Theme (design), add Plugins (extra functionality), or play with any of your other Settings. It’s probably a good idea to at least familiarize yourself with the WordPress backend menu.

Additionally, you should get to know “The First FIVE Components of WordPress to Understand When You’re Just Starting Out” (click link to view the full description of each). In brief, they are:


  1. Pages
  2. Posts
  3. Categories
  4. Tags
  5. Media

In your LMS class site, you can use each like this:

  1. Pages = semester-long use (static) – use for Class homepages, Syllabus pages, About pages, Resource pages
  2. Posts = daily use (chronological) – use for Class lessons, Homework assignments, or Reviews
  3. Categories = folders – assign each Class a separate folder to store all Class materials within it
  4. Tags = keywords – tag Posts with grammar points, topics, or subject content to allow easy searching and linking of related Posts later
  5. Media = upload your PPTs, PDFs, DOCs, Images, Videos, or other content here – and don’t forget that WordPress also does a GREAT job of supporting native embeds from sites like Twitter and YouTube. Click this link for a complete list of all the filetypes and embeds WordPress supports


  1. Gather your teaching materials and content
  2. Create a NEW Post for every Lesson
  3. Type (or copy-paste) your Lesson into the Editor and give it a Title
  4. Upload class materials and media
  5. Assign a Category using the Name of the Class (Freshmen Conversation 1B, for example)
  6. Add Tags based on the subject matter (be verb, introductions, conjugation rules, etc)
  7. Schedule the Post (if you want it to be available later, not immediately)
  8. Publish the Post

Plugins that may be helpful


  1. Easy Classes
  2. WP Teacher
  3. WP Course Manager (like a course catalog)
  4. EduHack (creates a course catalog showing relationships between courses and prerequisites)
  5. Educator (LMS)
  6. CoursePress (LMS)

Step 2: Learning Timelines (Pages)

After publishing a handful of Posts/Lessons (or possibly before), you may want to create a Class PAGE specifically for containing the Syllabus, Lesson Plans, and Links to those Lessons. The best way to do this is to create a WordPress Page.

Pages are unique in WordPress in that they DO NOT have Categories nor Tags. However, they are hierarchical, so you could create a Freshmen Conversation Page that has multiple “children” like the list below indicates:

  1. Freshmen Conversation
    1. Freshmen Conversation 1A
    2. Freshmen Conversation 1B
    3. Freshmen Tues/Thurs
    4. Freshmen Student Center Class

If you use “Pretty Permalinks” (go to Settings -> Permalinks in the WordPress sidebar menu) URLs of each Page will follow after their “parent” Page like so:

  1. myclass.com/freshmen-conversation/
    1. myclass.com/freshmen-conversation/freshmen-conversation-1a/
    2. myclass.com/freshmen-conversation/freshmen-conversation-1b/
    3. myclass.com/freshmen-conversation/freshmen-tues-thurs/
    4. myclass.com/freshmen-conversation/freshmen-student-center-class/

Therefore, you could simplify your Class Page names under the “parent” Page to only include the section number, date, or location of the class if you want (of course, you could also modify the URL by changing the “slug” under the Title of any Page as well).


  1. Create a Page for each Class
  2. Optionally create one “Category” main Page and Sub-Pages for each Class under that
  3. Copy-paste in your syllabus OR type it up in an unordered list OR table (using a plugin)
  4. Link each Post/Lesson from your Class Category to its syllabus item
  5. OR simply link the entire Class Category to the top of the Page (when students click the main link, it’ll take them to the Category Page which will show a chronological listing of each Post in their Class from most recent to latest)

Plugins that may be helpful


  1. Easy Table (can be used directly in the Post/Page Editor with the syntax required)
  2. TablePress (has its own interface, slightly more complicated and versatile)
  3. Websimon Tables (similar to TablePress with its own interface)
  4. The Events Calendar
  5. Weekly Class Schedule
  6. My Calendar
  7. Booking Calendar (allow students to schedule a meeting with you through your site)
  8. Online Lesson Booking (schedule a 1:1 lesson or meeting)

Step 3: Deliver Content (Scheduled Posts)

“Drip Content” is a term that means “sequential delivery of content.” This basically means that students don’t (or should not) have access to later Lessons before they complete (or are taught) previous Lessons.

This is very useful in fully automated online Learning Management Systems where a course creator simply sets up the system that unlocks later Lessons as users progress through and complete the Lessons in order. There are a number of good plugins to help you accomplish this.

However, for a simpler system – and one in which the teacher is a more active participant as the course progresses, the simplest method for “dripped content” is simply creating and Scheduling each Lesson/Post for the date that Lesson is to be taught or made accessible (this is akin to simply writing a new Lesson and Publishing it every Monday, for example).


  1. Write a Post (Lesson) for you Class
  2. Assign it a Category (Class folder) and add Tags (topics / keywords)
  3. Change the “Publish On” date in the Publish Meta Box
  4. “Schedule” your Post

Plugins that may be helpful


  1. Show/Hide Content at Set Time
  2. Timed Content
  3. Table of Contents Plus
  4. Simple Course Creator
  5. Simple Course Creator – Updates (shows updated course content in a timeline)
  6. WP-Members
  7. Search the Plugin Directory for “Drip Content” or “Show Hide Content”

Step 4: Assess & Track Students (Comments / Authors)

There are numerous ways you can track and assess student work in WordPress. Two of the easiest you can set up with no additional plugins are:

  1. WordPress Comments on Class Posts
  2. Giving students a username and login as an “Author” on your Class site where they can write their own Posts (as essays) which you then edit and approve before they go “Live” on the site


Add Authors

  1. Register new Users on your site by going to the Users -> Add New menu item
  2. Assign student roles as “Author” and register them
    1. In recent versions of WordPress, self-registration seems to be disabled, although there are some plugins available that will allow students to register themselves (see below)
  3. Allow students to login and write essays (Posts) in their Class Category – under a Sub-Category of your choice
  4. Edit their work and Publish it – you can write comments in the Post itself or in a Comment below it
    1. Optionally, don’t Edit the Post yourself, but just leave Comments and assign the student the work of coming back in and fixing their mistakes

Take Comments

  1. Go in to the Settings -> Discussion menu to adjust Comment settings appropriately
    1. “Allow people to post comments on new articles”
    2. “Comment author must fill out name and email”
    3. “Comment author must have a previously approved comment”
  2.  Assign students the homework of reading a Class Post and Commenting on it
    1. Additionally, when I was in grad school, I was assigned not only my original Comment about the article, but 3 “Reply” Comments to other students in the class. This is a good way to get a Discussion going.

Grading Student Work

Personally, without installing any additional plugins into WordPress, I have previously just kept records of student work in Excel spreadsheets or Google Sheets (they’re better for calculating numbers on the fly). However, there are a number of plugins available for grading, quizzes, and other things that you may want to try (see below).

Plugins that may be helpful


  1. Add Multiple Users
  2. AN_Gradebook
  3. Grading System Daxxip (VERY simple – just assign a grade and make it visible on a Post)
  4. Watu Quiz Tool
  5. Quiz Tool Lite
  6. Easy Quiz Player
  7. Exam Matrix
  8. BadgeOS (Give badges for achievements)

Step 5: Communicate with Students (Comments / Plugins)

One thing that WordPress makes exceptionally easy is communication between people. Whether this is using a Commenting system (as discussed above) or Plugins that add extra Social Networking style features, WordPress is has many powerful tools available to customize communication.


  1. Enable Comments on your site (discussed above)
  2. Add Plugins that enhance both your Comments and other forms of communication
    1. Enhance your Comments
    2. Add a Contact form
    3. Add Polls or Surveys
    4. Add Forums, Wikis, or Chats
    5. Add a Social Network plugin

Plugins that may be helpful


  1. Akismet (the #1 spam comment blocking plugin in the world)
  2. Disqus (enhanced Comments)
  3. Contact Form 7 (one of the most popular contact form plugins in the world)
  4. PollDaddy (available on WordPress.com already)
  5. Polls by OpinionStage
  6. WP Survey and Quiz Tool
  7. Survey by POWr
  8. Wiki by WPMU Dev
  9. Chat by WPMU Dev
  10. Pure Chat – Free Live Chat Plugin
  11. iFlyChat – WordPress Chat (allow users to discuss in public and private chat rooms)
  12. bbPress (Official WordPress forum plugin)
  13. BuddyPress (Official WordPress Social Network building plugin)
  14. BuddyPress Docs (add collaborative work spaces to BuddyPress)
  15. BadgeOS Community Add-on (add badges to bbPress and BuddyPress)
  16. BadgeOS Invite Codes Add-on (allow users on BuddyPress to join specified groups with an Invite code)

Step 6: Ongoing Resources

Finally, it is important to keep an organized space for resources and references for your classes. The easiest way to do this is to create a dedicated Resources Page that you continually update as new resources are found or added.

Your WordPress Media Library houses everything you upload to your site (in chronological order) so it can get rather messy after a while. However, there are a few ways you can help yourself keep things organized in the Media Library:

  1. Be sure to NAME your resources appropriately so that they are easy to Search for in the Search box
  2. Install a plugin to help with organization (see below)

Another option for creating a list of Resources that are simply links to various other locations online is to create a Blogroll (list of other blogs) on a page or in a Sidebar Widget.


  1. Appropriately name/label every file you upload
  2. Create a Page called “Class Resources”
    1. You might also create Sub-Pages for each Class like “Freshman 1A Resources”
    2. OR if there will be much overlap, simply divide your Main Page with different Headings for each class
  3. Update your “Class Resources” Page as you find/upload new material
  4. Create a Custom Menu called “Blogroll” or “External Resources” or something
    1. Add links to external sites in this Menu
    2. Add the Menu to a Sidebar Widget (or possibly a Page – you might need a plugin)
  5. Add a Plugin to help you manage everything

Plugins that may be helpful


  1. Enhanced Media Library (allows you to Tag your Media Library files and categorize them)
  2. Media Library Assistant
  3. Eazy Enable Blogroll (brings back the original WordPress default Blogroll)
  4. Open Link (outputs Blogroll links to a Page or Post using a shortcode)
  5. Encyclopedia / Glossary / Wiki
  6. Wiki by WPMU Dev
  7. Xili-Dictionary (Multilingual dictionary)
  8. Google Drive WP Media
  9. Google Drive Embedder
  10. BackWPup Free – WordPress Backup Plugin (backups are important)

Full Fledged Learning Management Systems


  1. LePress (lacking documentation and screenshots)
  2. Educator
  3. Namaste! LMS
  4. CoursePress | PRO Version
  5. LearnDash (Premium)
  6. WooSensei (Premium)
  7. WP Courseware (Premium)
  8. LifterLMS (Premium)

Your Turn

  • Have you ever built a WordPress LMS site? How was your experience? Any more recommendations?
  • For first users, was my walkthrough helpful? Anything unclear?

Leave me a Comment below.

Technology Upgrade: Build a Customized Grade Book

Practically, enhanced teaching begins when teachers themselves are comfortable using technology and applying it to real-world problems. Before there can be a “technology upgrade” in the classroom, teachers must understand the benefits and uses of a particular piece of technology so they can share those with their students. And what better place for teachers to begin getting comfortable with technology than with their own personal productivity?

Technology in schools is no “passing fad.” But neither is every new tech initiative a “silver bullet” to solve every problem faced by teachers and students. Too often, technology and related skills are either taken for granted or overlooked. Schools invest money in technology and expect teachers to use it to educate and empower 21st century students. But before we can have empowered students, a solid foundation must be built on reliable infrastructure, effective administration, extensive resources, and enhanced teaching.

The first half of this presentation will focus on the first three points:

  1. Reliable infrastructure
  2. Effective administration
  3. Extensive resources

The second half will focus primarily on enhanced teaching.

Practically, enhanced teaching begins when teachers themselves are comfortable using technology and applying it to real-world problems. Before there can be a “technology upgrade” in the classroom, teachers must understand the benefits and uses of a particular piece of technology so they can share those with their students. And what better place for teachers to begin getting comfortable with technology than with their own personal productivity?

Therefore, the conclusion of this presentation will give suggestions for enhanced personal productivity as well as lay out the basic steps for the creation of a very versatile class grade book in Microsoft Excel.

KOTESOL Grade book Presentation Notes

Chameleons and camouflage: Do you stand out? Or do you blend in (and hide)?

My self intro: I’ve taught 6 years in Korea, 3 at Avalon Academy, 3 at Jeonju University. I have a BS in Computer Science and MFA in Media Design – earned completely online. I’ve taught Teacher Training classes in Technology at JJU for 2 semesters, summer 2011 and spring 2012 (now).

I’ve worked with educational websites throughout my entire career, including Avalon’s online writing and speaking platform, the MOODLE CMS for my own JJU classes, and my own experience taking a year of online class for my Master’s degree from Full Sail University in Florida. So, I have a pretty good idea what good teaching with technology looks like.

Additionally, when I teach about making grade books in Excel, it consistently is ranked as the best and most popular skill I teach other teachers. So, I’ll talk about that in this presentation.

The book I’m currently teaching is “The Classroom Teacher’s Technology Survival Guide” by Doug Johnson, an English teacher, librarian, and district technology manager in his state in the US. It’s a great book, and many of my ideas have come from it.

Part One

Let me start with an observation – Technology Revolution. It’s revolutionized every field in the world…except maybe, education. In fact, ONLY education has not changed so much that a teacher from 1900 would not know what to do in today’s classrooms.

And when it comes to tech changes, we are creatures of habit – we like the old stuff even if its outdated. For example, new interfaces from Gmail and Facebook (Timeline) and the tons of resistance those received from (some) users. Sir Ken Robinson in a TED talk mentioned kids and wristwatches.

For kids under the age of 20, they see no need to wear a wristwatch, because technology tells the time all around them. But for the older generation (teachers), most of us wear wristwatches because we are creatures of habit, and its how we grew up. For our generation, a wristwatch was the best (only?) way to tell time, and even though it isn’t the most effective means of telling time nowadays, we still wear them.

Tech in schools is no “passing fad.” Neither is tech in schools a “silver bullet” (to solve every single problem with a single technology – though many administrators may come back from conferences with that kind of notion).

So then, WHY do we want tech in schools?


Tech in general really has 2 main functions:

  1. Automate – take standard operations and make them faster, more accurate, and less labor intensive.
  2. Informate (coined by Shoshana Zuboff in her book “In the Age of the Smart Machine” (1988)) – translating descriptions and measurements of activities, events, and objects into information.

The real power is in “informate.”


  • Grade book: Automate (calculate grades), Informate (make available to students, inform teachers of trends, inform parents)
  • Website tutorials: Automate (lessons), Informate (learn new skills at my own pace)
  • Student Devices: Automate (homework), Informate (learn from anywhere)

So how can we go from 1906 to 2012? “Attitude is everything.”

Look at the “Survival Skills for your Own Tech Use.” We’ll look at #5 in the following section.


  • Maslow’s Hierarchy of Needs
  • Johnson’s Hierarchy of Educational Technology Needs
  • Johnson’s Hierarchy of Student Technology Use

We will look at “Personally Productive, Enhanced Teaching” with the grade book.

Part 2

There are probably 3 kinds of (Excel) people watching my talk today:

  1. Those who don’t really know Excel (a blank spreadsheet)
  2. Those who know the basics (a basic grade book)
  3. Power-users (like me) who want advanced techniques

This look at Excel with be fairly basic, but even Power-users can benefit from some of the specialization I will talk about, AND the fact that we are all forgetful. This will be a good reminder to those who already know how, and a good beginning for those who wish to learn more.

Creating the Grade book

The grade book has spaces for:

  1. Student names and numbers
  2. Test and Assignment grades
  3. Participation and Attendance grades
  4. Final grade percentages
  5. Final letter grades
  6. A schedule of classes and topics
  7. A place for Bonus Points
  8. A place for calculating a grading curve

The grade book needs to have the following requirements met:

  1. Use the =SUM(...) function
  2. Use the =IF(...) function
  3. Use 2 more functions of your choice:
  4. Fill out the info (including grades) for 10 students
  5. Make it “pretty” with good formatting and design

Example Gradebooks

  1. Simple Elementary Grade book
  2. Aaron’s Grade book Example

Example formulas:

=RANK(A1, A$1:A$10, 0)
Means RANK(“what student?”, “Whole class”, Descending order)

=IF(A1>=0.9, “A”, IF(A1>=0.8, “B”, IF(A1>=0.7, “C”, IF(A1>=0.6, “D”, “F”))))
Please remember to change the CELL numbers.


  • FIX the view: 보기 – 틀고정
  • Data Validation: 데이터 유효성

Some notes:

  • ISBLANK(CELL) only works on cells that are truly blank (no formula)
  • Need to be sure that “Automatic Calculations” (not Manual) is selected in the Excel Options.
  • Do you want to use points or percentages?
  • You CAN find out how many Absences they have using COUNTIF – but that only works on a continuous range of cells, not multiple selections
  • You CAN assign an “F/A” grade if the student has 9 or more absences – but that must be the FIRST argument in the cell.
  • Need to use the test “>=” to test grades, if using only “>” (for example, > 90) then it will evaluate wrongly. 90 would be “B” but “91” would be “A”
  • Therefore, separating Attendance and Participation VERTICALLY, rather than horizontally would probably work better.