Learn icon indicating copy to clipboard operation
Learn copied to clipboard

Course: A Developers Guide To Block Theme Development - Part 1

Open jonathanbossenger opened this issue 3 years ago • 17 comments
trafficstars

IMPORTANT

This course depends on the completion of Create a Custom Block Theme #1

Ideally that course should be completed before tackling any lesson related to this course

Please reach out to @jonathanbossenger (Jonathan Bossenger) in the #training team Slack if you would like to help with this course.

Needs Assessment Statement

A course about extending a low-code block theme should exist because intermediate or advanced theme developers will want to learn how to tackle more technical challenges when developing block themes.

This is part 1 of this course, which will cover block theme development fundamentals

Target Audience

Suzie is a theme developer who, before the advent of block themes, has created a number of free themes for WordPress.org, commercial themes that she sells on a theme marketplace, and a few custom themes for specific clients. With the advent of the WordPress block editor, and the ability to create themes from the Site Editor, she wants to take her experience as a classic theme developer and learn how to build custom themes using blocks.

Suzie has watched a few online tutorials on Block theme fundamentals OR completed the Create a Block Theme (Low-Code) - Course OR read the relevant sections in the handbook on Block Themes and understands the fundamentals of block themes, but can see the limitations of a block theme that’s only created in the Site Editor, and wants to understand how to extend a custom block theme beyond those limitations.

Course Objective

Intermediate and advanced developers will be able to extend the low code theme created in the Create a Block Theme (Low-Code) - Course, by understanding the underlying technologies better, and add advanced features like custom templates and template parts, custom fonts, images, custom styles etc.

Outline #

Module 1: Recap of Create a Block Theme (Low-Code)

  • [ ] #868
  • [ ] #869
  • [ ] #870
  • [ ] #955

Module 2: Building Your Site Structure in the Editor

  • [ ] #968
  • [ ] #969
  • [ ] #963
  • [ ] #964

Module 3: Saving Site Editor Changes to the Database

  • [ ] #875
  • [ ] #876
  • [ ] #877

Module 4: Creating Custom Templates and Template Parts

  • [ ] #962
  • [ ] #885
  • [ ] #886

Project Planning

Module Status ETA
Recap of Create a Block Theme (Low-Code) Done 16/09
Building Your First Theme Templates in the Editor Done 23/09
Saving Site Editor Changes to the Database Done 30/09
Creating Custom Templates and Template Parts Done 14/10
  • Draft – module content is complete, some self-review/screenshots are still needed
  • In Progress – module is being worked on
  • Ready – module is ready to create
  • Done – module is complete and ready for review

jonathanbossenger avatar Jul 15 '22 10:07 jonathanbossenger

Status update post - https://make.wordpress.org/training/2022/07/15/block-theme-development-course-update/

jonathanbossenger avatar Jul 15 '22 11:07 jonathanbossenger

Draft course outline in Google doc format. Next I will turn these into separate issues

https://docs.google.com/document/d/1WRiuf7FP5bKC5oAZc65TqAH0d6dOJh5OKT_y8jxI8Ac/edit?usp=sharing

jonathanbossenger avatar Jul 29 '22 14:07 jonathanbossenger

Can you make it public so people can read it?

caraya avatar Jul 29 '22 17:07 caraya

Apologies @caraya it was moved to a public folder, but it seems something went wrong. Can you access it now?

jonathanbossenger avatar Jul 30 '22 06:07 jonathanbossenger

Yes, I can read it OK now. Thanks 😃

caraya avatar Jul 30 '22 19:07 caraya

Update - lesson plan GitHub issues created and Course Outline updated on this ticket! 🎉

jonathanbossenger avatar Aug 19 '22 13:08 jonathanbossenger

Hi @caraya

Thanks for your feedback on the Google Doc outline. I've replied to any questions, and asked a few clarifying questions of my own.

jonathanbossenger avatar Aug 22 '22 12:08 jonathanbossenger

Added Needs Assessment Statement and Target Audience to the course outline in the ticket description.

@westnz @wparasae when you have a moment, I'd appreciate it if you had any feedback on those two items

jonathanbossenger avatar Aug 23 '22 09:08 jonathanbossenger

I like the needs assessment statement; agree that is helpful!

Target audience is creatively done! I like that you have described the intended user. It's informative and made me smile! One option for change / addition might be to create a bulleted skills list to capture the moment in time she's in with detail. For example, Suzie has developed themes in the past, so she already knows:

-How to code PHP in functions files and use text editors -Hooks, actions, and other developer vocabulary I don't know because I am not a developer ahaha -What clients want from a well-designed theme.

Suzie may not know... -Where PHP might be necessary in block themes or useful -What clients want from a block theme

I think a bulleted list like this can pinpoint a moment in time, and allow us to link to supplementary information to help fill gaps for intermediate developers. :) Just a thought though, not a necessity!

wparasae avatar Aug 23 '22 17:08 wparasae

@jonathanbossenger Your Needs Assessment Statement and Target Audience look solid.

westnz avatar Aug 23 '22 21:08 westnz

I have one concern.

The outline makes this course dependent on Create a custom block theme but targets a different audience for this course.

I'm not sure how well this works out if Peter, a designer with Figma experience who has completed the prerequisite course but who is still not comfortable with editing JSON files and with limited understanding of blocks and patterns decides to go ahead and take the course anyways?

@westnz, @wparasae am I reading too much into this? What do you think?

caraya avatar Aug 24 '22 02:08 caraya

@caraya That is a fair point, but I assume there will always be certain gaps in knowledge for some folks to bridge. Peter, from your example, will probably need to upskill in a few areas as an intermediate or advanced theme developer before continuing with the second course. Some developers might not even need to complete the first course and could jump straight into the second. I therefore don't think this is something to be too concerned about as the first course provides scaffolding for the second. 😃

westnz avatar Aug 24 '22 04:08 westnz

Course skeleton created in Sensei on Learn.

jonathanbossenger avatar Aug 26 '22 13:08 jonathanbossenger

I have decided to try and build the content publicly, by using a separate GitHub repository in my personal account. I am doing this for a few reasons:

  1. It allows content creation in public, as opposed to Sensei on Learn WordPress, which is only accessible to WordPress training team contributors
  2. It allows for feedback from any interested contributors
  3. It allows for pull requests, so contributors can suggest their own changes to each of the course lessons.
  4. Because it's written in markdown, it's possible to review the content in the GitHub web UI
  5. Because it's written in markdown, it can be copied/pasted over to the WordPress post editor, which supports markdown.

You can find the course content repository here.

I will be linking each individual piece of content to the relevant issue in this repository.

jonathanbossenger avatar Sep 08 '22 11:09 jonathanbossenger

Module 1: Recap of Create a Block Theme (Low-Code) is ready for review.

jonathanbossenger avatar Sep 21 '22 11:09 jonathanbossenger

This course is now available for public review! 🎉

A Developers Guide to Block Themes – Part 1

How to review:

Make sure you are logged into your WordPress.org account, click on the link above, and take the course.

During the review, it would be helpful if you can keep the following questions in mind while reviewing each lesson.

  • Are there any spelling/grammar issues or anything that doesn't make sense?
  • Is the content technically correct?
  • Does the layering of information successfully build from lesson to lesson
  • Can you follow the steps outlined in the course
  • Does the lesson contain enough relevant links to documentation (WordPress documentation, or any other relevant documentation)

How best to leave feedback:

Each lesson in the course is being tracked on a separate issue in this repository. You can find the full list of modules and lesson tickets in the Outline at the top of this ticket. So when you're reviewing a lesson, please find the ticket relevant to that lesson, and leave your lesson-specific feedback in the comments on the lesson ticket.

I'm aiming to publish the course on Monday 31 October, to time it with the WordPress 6.1 release.

jonathanbossenger avatar Oct 21 '22 13:10 jonathanbossenger

This course is fantastic and I loved going through it - excellent content and really well put together. Wonderful work all round!

Two quick typos to fix:

  • The first question on this quiz: https://learn.wordpress.org/quiz/building-your-theme-structure-in-the-editor-summary/. The question reads "What is one common different between using Group blocks and Row blocks when defining your template layout?". The word "different" should be "difference".
  • The final module is called "What' Next?" - it's missing an "s" after the apostrophe.

And just noting for posterity that the final lesson ("Congratulations!") will need to have its content updated once part 2 of this course is live.

I can't wait for this to be live - great work, @jonathanbossenger!

hlashbrooke avatar Oct 26 '22 23:10 hlashbrooke

Thanks for the review, as well as your kind words @hlashbrooke

I'll make sure to get those errors fixed.

And just noting for posterity that the final lesson ("Congratulations!") will need to have its content updated once https://github.com/WordPress/Learn/issues/1041 is live. Yes, this is actually one of the reasons I added that final lesson, so that we can link learners to it, once it's published.

One thing I'd love to be able to do is somehow let all learners who enrolled for part 1 know when part 2 is available. Do you know if this is currently possible?

jonathanbossenger avatar Oct 27 '22 06:10 jonathanbossenger

One thing I'd love to be able to do is somehow let all learners who enrolled for part 1 know when part 2 is available. Do you know if this is currently possible?

As far as I know, It isn't possible to email all learners in a course, but I'll dig into that to see what we can do.

hlashbrooke avatar Oct 28 '22 01:10 hlashbrooke

This course has been published! https://learn.wordpress.org/course/a-developers-guide-to-block-themes-part-1/

jonathanbossenger avatar Oct 31 '22 11:10 jonathanbossenger