Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Learning Pathway: Intermediate Plugin Developer #2044

Open
46 tasks
jonathanbossenger opened this issue Nov 29, 2023 · 10 comments
Open
46 tasks

Learning Pathway: Intermediate Plugin Developer #2044

jonathanbossenger opened this issue Nov 29, 2023 · 10 comments
Assignees

Comments

@jonathanbossenger
Copy link
Collaborator

jonathanbossenger commented Nov 29, 2023

Learning Pathway: Intermediate Plugin Developer

The intermediate plugin developer has the fundamental knowledge needed to develop for WordPress, and has decided to focus on plugin development.

See the full Developer pathway outlined in this document.

Module 1: Plugin Development Practices

Objective:

Lessons

  • Activation/Deactivation hooks
  • Uninstall Methods
  • Best Practices
  • Determining plugin and content directories

Module 2: Advanced Hooks

Objective:

Lessons

  • Custom hooks
  • Removing hooks
  • Determining the correct hook

Module 3: Advanced Blocks

Objective:

Lessons

  • Modern JavaScript practices
  • Nested blocks
  • Extending blocks
  • Block Hooks
  • Block Data
  • Interactive Blocks
  • Block Bindings

Module 3: Developing with Roles and Capabilities

Objective: Introduce the User Roles and Capabilities, and how to limit access to content by using them.

Lessons

  • How to create/modify/remove roles and capabilities
  • How to check user capabilities
  • Custom content types and capabilities

Module 4: Administration Menus

Objective:

Lessons

  • Top-Level Menus
  • Sub-Menus

Module 5: Settings

Objective:

Lessons

  • Using Settings API
  • Options API
  • Custom Settings Page

Module 6: Advanced Custom Post Types

Objective:

Lessons

  • Working with Custom Post Types

Module 7: Advanced Metadata

Objective:

Lessons

  • Custom Meta Boxes
  • Rendering Post Metadata

Module 8: Custom database tables

Objective:

Lessons

Module 9: Advanced Internationalisation

Objective:

Lessons

  • Internationalization Security

Module 10: Users

Objective:

Lessons

  • Working with Users
  • Working with User Metadata

Module 11: Privacy

Objective:

Lessons

  • Policy Content
  • Personal Data Export
  • Personal Data Erasure

Module 12: Cron

Objective:

Lessons

  • Understanding WP-Cron Scheduling
  • Scheduling WP Cron Events
  • Hooking WP-Cron Into the System Task Scheduler
  • Testing of WP-Cron

Module 13: Shortcodes

Objective:

Lessons

  • Enclosing Shortcodes
  • Shortcodes with Parameters

Module 14: Rendering Content

Module 15: Developer tools

Objective:

Lessons

  • Debug Bar and Add-Ons
  • Helper Plugins

Module 16: The Plugin Directory

Objective:

Lessons

  • Detailed Plugin Guidelines
  • Planning Plugins
  • Using Subversion
  • Alerts and Warnings
@jonathanbossenger
Copy link
Collaborator Author

Note: Once the Interactivity API has landed in core, add it to this learning pathway

@jonathanbossenger
Copy link
Collaborator Author

@jonathanbossenger
Copy link
Collaborator Author

Consider adding a new module on advanced WP REST API Authentication covering

@jonathanbossenger
Copy link
Collaborator Author

Update, moved the Roles and Capabilities module from the beginner pathway to here. Moved the lesson on enqueuing CSS and JS to the Introduction to plugin development module in the beginner pathway.

@jonathanbossenger
Copy link
Collaborator Author

Consider adding an advanced WP REST API module covering

@jonathanbossenger
Copy link
Collaborator Author

Consider including #2461

@jonathanbossenger
Copy link
Collaborator Author

How can we include The Storybook into the module on advanced block development

@jonathanbossenger
Copy link
Collaborator Author

Note to self, once #1984 is launched, re-review the modules/lessons in this pathway, to ensure the content is still relevant.

@eirichmond
Copy link

@jonathanbossenger I believe I've seen a response to my question in another Learning Pathway issue, but I would like to clarify it here as well. Firstly, I must say that this proposal appears to be a comprehensive and valuable Learning Pathway for plugin development. My question is: are you proposing to complete this project individually, or is there an opportunity for others, like myself, to contribute a single module collaboratively? Apologies if this seems like a basic question; I just want to ensure I understand the commitment required.

@jonathanbossenger
Copy link
Collaborator Author

@eirichmond great question.

I would greatly appreciate any and all help I can get 😁

As a team, one of our primary goals for the Learning Pathways project is to create "clear, user-friendly pathway for learners of different levels, roles, and use-cases.".

This, and the other developer-focused pathways, form part of that goal.

As you may have seen from the beginner and theme developer , the more folks we can onboard to help us create this content, the faster it gets created.

an opportunity for others, like myself, to contribute a single module collaboratively?

I also wanted to highlight this point. I think it's important for each module to be self-contained. This means it would be ideal if the design and presentation of all the lessons in any specific module were the same. You will see this in the Introduction to WordPress themes module that Cynthia created for the beginner pathway and any of the modules she worked on in the theme developer pathway.

So if possible, it would be great if individual collaborators were able to take ownership of a specific module, instead of only working on specific lessons.

Final note, the planned deadline for this learning pathway is the end of 2025, so we do have some time. Please only take on that which you feel you have time for, it's important to me that contributors are able to balance life, work, and their volunteer contributions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants