Introduction to WordPress Development syllabus

Earlier this month I posted a proposal for an Introduction to WordPress Development syllabus and asked the community for feedback.

A note on naming. When I shared the proposal post, I used the term learning path to describe the list of topics being gathered. During the feedback process, I realized that this name was incorrect and that what I was proposing is in fact better described as a syllabus (from the Late Latin syllabus meaning “list”) of topics that should be covered at the beginner level. I have therefore adjusted the name of the list for this post.

Thanks to all the great feedback on the contents of this proposed syllabus, I am able to update this list to include all the topics relevant to the beginner WordPress developer. At the same time, I have linked any existing Learn WordPress tutorials I am aware of, or any tutorials that are in progress, that fulfill specific items in this list.

Tutorials still in progress are included after the topic as indicated by (WIP).

Introduction to WordPress Development syllabus

  1. A brief overview of how WordPress works
    • An introduction to how a web server works with WordPress
    • The WordPress file system
    • Creating basic things like posts, pages, and users, and changing settings
    • Permalinks, and how they work with the rewrite module on both ApacheApache Apache is the most widely used web server software. Developed and maintained by Apache Software Foundation. Apache is an Open Source software available for free. and NginxNGINX NGINX is open source software for web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers. https://www.nginx.com/.
    • How a dashboard page request loads
    • How a front-end page request loads
  2. The programming languages of WordPress
    • HTMLHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites.
      • Introduction to AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
    • CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site.
    • JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/.
    • PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. http://php.net/manual/en/intro-whatis.php.
    • MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/.
  3. WordPress development fundamentals
  4. An introduction to developing WordPress themes
    • Classic themes vs blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes
    • Theme requirements
    • Templates and template parts
    • The WordPress Template Hierarchy
    • Classic themes – Template tags and conditional tags
    • Block themes – patterns
    • Block themes – theme.json
    • Enqueuing CSS and JavaScript
    • Custom functions
  5. An introduction to developing WordPress plugins
    • PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party requirements
    • Creating custom post types and taxonomies
    • Using post metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.
    • Enqueuing CSS and JavaScript
    • Introduction to developing plugins securely
    • Preventing common vulnerabilities
  6. An introduction to Internationalization
    • The commonly used Internationalization Functions
    • An overview of the Internationalization
  7. An introduction to Roles and Capabilities
  8. An introduction to Common WordPress APIs
    • Responsive Images
    • Dashboard widgets
    • Database
    • Filesystem
    • Global Variables
    • Metadata
    • Options
    • HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. Requests
    • Rewrite
    • Settings
    • ShortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site.
    • Transients
  9. An introduction to the WordPress REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.
  10. An introduction to developing WordPress blocks
  11. An introduction to WordPress multisiteMultisite Multisite is a WordPress feature which allows users to create a network of sites on a single WordPress installation. Available since WordPress version 3.0, Multisite is a continuation of WPMU or WordPress Multiuser project. WordPress MultiUser project was discontinued and its features were included into WordPress core.https://codex.wordpress.org/Create_A_Network.
  12. Debugging in WordPress
    • Enabling the built-in WordPress debugging options (WIP)
    • Examining the state of your PHP code using error_log and print_ror vardump (WIP)
    • Examining the state of your JavaScript code using the console object
    • Popular debugging plugins (WIP)
      • https://wordpress.org/plugins/debug-bar/
      • https://wordpress.org/plugins/query-monitor/

Introduction to WordPress Development addendum

In addition to this list, the following topics were suggested for inclusion, but a consensus was not reached as to whether they should be included at the beginner level or intermediate level. Therefore I am including them in this post as an addendum.

  1. An Introduction to Localization
  2. Installing and using Xdebug for step debugging
  3. An Introduction to using SVNSVN Apache Subversion (often abbreviated SVN, after its command name svn) is a software versioning and revision control system. Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS). WordPress core and the wordpress.org released code are all centrally managed through SVN. https://subversion.apache.org/.
  4. An introduction to using WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/ (WIP)

Help needed to complete this syllabus

Are you aware of any tutorials on Learn WordPress or tutorials currently being created that will fulfill any of the topics in this syllabus? If so, please share it in the comments, and I will update the list.

Are you a content creator who can assist with creating tutorials for any of the available topics on this list? If so, please read the Training Team handbook section on Tutorials and consider joining the Training Team by applying to be a tutorial presenter.

Are you an existing tutorial presenter, who is looking for developer-focused topics and ideas to create? Pick any unlinked item from this, create a new tracking issue for it, assign yourself, and work your magic.

This post will remain open for comments indefinitely until a tutorial exists for every item on this list. If you have any questions about creating tutorial content for Learn WordPress, or you just need to bounce a few ideas or questions off someone else, please feel free to message me in the WordPress Slack.