Blog · Gutenberg

Course Lesson block for WordPress

A complete course lesson with objectives, content sections, resources, and navigation.

Get Blockenberg

Free Gutenberg block in Blockenberg. The inspector controls and front-end behavior on this page come from this block’s source, not a shared stub.

Get Blockenberg

What it actually does

A complete course lesson with objectives, content sections, resources, and navigation.

Inspector panels on this block: Lesson Info, Introduction, Learning Objectives, Prerequisites, Content Sections, Resources, Lesson Navigation, Header Colors. Those titles come from index.js, not from a shared template.

Behavior controls: “Difficulty” options: 🟢 Beginner, 🟡 Intermediate, 🔴 Advanced; “Type” options: Text, 💡 Tip, ⚠️ Warning, 📝 Note; “Type (Resources)” options: 📄 Article, 🎥 Video, ⬇️ Download, ✏️ Exercise, 🔗 Link.

Where to find it

Gutenberg inserter → Blog → search “Course Lesson” (block name `blockenberg/course-lesson` in block.json). Style it in the sidebar after insert.

How to use Course Lesson block for WordPress

  1. Install Blockenberg. Install from WordPress.org and activate the plugin.
  2. Insert the block. Edit a page, click +, search for “Course Lesson”, insert it. Category: Blog.
  3. Configure inspector controls that exist on this block. Open Lesson Info. Set “Lesson Title”, “Module Title”, “Show Module”, “Show Lesson #”.
  4. Check the published page. The view script reads HTML data attributes: data-opts, data-rendered. The block editor preview may not run the same view script.

Inspector controls from this block’s code

ControlWhat the code does
Lesson TitleText field in the inspector. block.json default: Building REST APIs with Node.js. Saved as `lessonTitle`.
Module TitleText field in the inspector. block.json default: Module 4: APIs & Data. Saved as `moduleTitle`.
Show ModuleOn/off toggle in the inspector. On by default. Saved as `showModule`.
Show Lesson #On/off toggle in the inspector. On by default. Saved as `showLessonNumber`.
Lesson Number (e.g. Lesson 3 of 8)Text field in the inspector. block.json default: Lesson 3 of 8. Saved as `lessonNumber`.
DurationText field in the inspector. block.json default: 45 min. Saved as `duration`.
InstructorText field in the inspector. block.json default: Alex Martinez. Saved as `instructor`.
DifficultySelect control; the chosen value is saved on the block. Options: 🟢 Beginner; 🟡 Intermediate; 🔴 Advanced. block.json default: intermediate. Saved as `difficulty`.
Duration (Show Duration)On/off toggle in the inspector. On by default. Saved as `showDuration`.
Difficulty (Show Difficulty)On/off toggle in the inspector. On by default. Saved as `showDifficulty`.
Instructor (Show Instructor)On/off toggle in the inspector. On by default. Saved as `showInstructor`.
Show IntroductionOn/off toggle in the inspector. On by default. Saved as `showIntro`.
Intro TextMultiline text field in the inspector. block.json default: In this lesson, you'll build a fully functional REST API using Express.js. We'll cover everything from project setup and route definition to data validation and database integration — all with real-world patterns you can use immediately.. Saved as `intro`.
Show ObjectivesOn/off toggle in the inspector. On by default. Saved as `showObjectives`.
Section LabelText field in the inspector. block.json default: What You'll Learn. Saved as `objectivesLabel`.
Show PrerequisitesOn/off toggle in the inspector. On by default. Saved as `showPrerequisites`.
Section Label (Prerequisites Label)Text field in the inspector. block.json default: Prerequisites. Saved as `prerequisitesLabel`.
Show Content SectionsOn/off toggle in the inspector. On by default. Saved as `showSections`.
TypeSelect control; the chosen value is saved on the block. Options: Text; 💡 Tip; ⚠️ Warning; 📝 Note. Saved as `sections`.
HeadingText field in the inspector. Saved as `sections`.
Content Sections — ContentMultiline text field in the inspector. Saved as `sections`.
Show ResourcesOn/off toggle in the inspector. On by default. Saved as `showResources`.
Section Label (Resources Label)Text field in the inspector. block.json default: Resources. Saved as `resourcesLabel`.
Type (Resources)Select control; the chosen value is saved on the block. Options: 📄 Article; 🎥 Video; ⬇️ Download; ✏️ Exercise; 🔗 Link. Saved as `resources`.
Resources — TitleText field in the inspector. Saved as `resources`.
URLText field in the inspector. Saved as `resources`.
Show Prev/Next NavigationOn/off toggle in the inspector. On by default. Saved as `showNav`.
Previous Lesson TitleText field in the inspector. block.json default: HTTP Fundamentals & Status Codes. Saved as `prevLesson`.
Previous URLText field in the inspector. block.json default: #. Saved as `prevLessonUrl`.
Next Lesson TitleText field in the inspector. block.json default: Authentication with JWT. Saved as `nextLesson`.
Next URLText field in the inspector. block.json default: #. Saved as `nextLessonUrl`.
Lesson Title (Typo Title)Shared Blockenberg typography popover (family, size, weight, spacing). Saved as `typoTitle`.
Body TextShared Blockenberg typography popover (family, size, weight, spacing). Saved as `typoBody`.
Module Title Size (px)Numeric range control in the inspector. Range 9–18. block.json default: 11. Saved as `moduleTitleSize`.
Border Radius (px)Numeric range control in the inspector. Range 0–24. block.json default: 12. Saved as `borderRadius`.
Header BGColor control in the inspector. block.json default: #0f172a. Saved as `headerBg`.
Header TextColor control in the inspector. block.json default: #ffffff. Saved as `headerColor`.
Meta TextColor control in the inspector. block.json default: #94a3b8. Saved as `metaColor`.
Block BGColor control in the inspector. block.json default: #ffffff. Saved as `bgColor`.
Body & Section Colors — BorderColor control in the inspector. block.json default: #e5e7eb. Saved as `borderColor`.
AccentColor control in the inspector. block.json default: #3b82f6. Saved as `accentColor`.
Body TextColor control in the inspector. block.json default: #374151. Saved as `textColor`.
Section HeadingColor control in the inspector. block.json default: #111827. Saved as `headingColor`.
Intro BGColor control in the inspector. block.json default: #f0f9ff. Saved as `introBg`.
Intro TextColor control in the inspector. block.json default: #0369a1. Saved as `introColor`.
Objectives BGColor control in the inspector. block.json default: #f0fdf4. Saved as `objectiveBg`.
Objectives TextColor control in the inspector. block.json default: #14532d. Saved as `objectiveColor`.
Prereq BGColor control in the inspector. block.json default: #f8fafc. Saved as `prereqBg`.
Resource BGColor control in the inspector. block.json default: #f8fafc. Saved as `resourceBg`.
Nav BGColor control in the inspector. block.json default: #f8fafc. Saved as `navBg`.
Tip BGColor control in the inspector. block.json default: #fefce8. Saved as `tipBg`.
Tip TextColor control in the inspector. block.json default: #713f12. Saved as `tipColor`.
Tip BorderColor control in the inspector. block.json default: #fbbf24. Saved as `tipBorder`.
Warning BGColor control in the inspector. block.json default: #fff7ed. Saved as `warningBg`.
Warning TextColor control in the inspector. block.json default: #9a3412. Saved as `warningColor`.
Warning BorderColor control in the inspector. block.json default: #f97316. Saved as `warningBorder`.
Note BGColor control in the inspector. block.json default: #eff6ff. Saved as `noteBg`.
Note TextColor control in the inspector. block.json default: #1e40af. Saved as `noteColor`.
Note BorderColor control in the inspector. block.json default: #3b82f6. Saved as `noteBorder`.

What the front-end script actually does

When this is the right block

Notes from the implementation

viewScript: this folder’s frontend.js is enqueued on the front end for this block.

FAQ

How do I add the Course Lesson block in WordPress?

Install Blockenberg from WordPress.org, edit a page in the block editor, click +, and search for “Course Lesson”. It sits under Blog. After insert, open Lesson Info and set “Lesson Title”, “Module Title”, “Show Module”, “Show Lesson #”.

What makes Course Lesson different from other Blockenberg blocks?

A complete course lesson with objectives, content sections, resources, and navigation. Inspector labels on this block include “Lesson Title”, “Module Title”, “Show Module”, “Show Lesson #”.

Is the Course Lesson Gutenberg block free?

Yes. Course Lesson ships inside Blockenberg. Get the plugin from WordPress.org — no paid add-on is required for this block.

Can I style Course Lesson to match my theme?

Yes. Blockenberg’s shared typography and color panels apply here, plus any block-specific style controls listed on this page (panels: Lesson Info, Introduction, Learning Objectives, Prerequisites).

Related blog blocks

Get Blockenberg

Install Blockenberg from WordPress.org, then insert Course Lesson from the Gutenberg inserter.

Get Blockenberg