The details below will walk you through getting set up to contribute to the code behind https://learn.wordpress.org. If you are interested in contributing to the content or translation of the content hosted on the site, you'll find further guidance in the Training Team Handbook. Content development is tracked on this GitHub repository in this project board.
If you're interested in contributing to the site, but aren't sure where to start, we have a series of workshops to help you get started.
nvm use
or ensure you are running the Node version specified in the .nvmrc
fileyarn
yarn run create
localhost:8888
yarn start:theme
If you are on a Mac using Apple Silicon processors (M1, M2, etc.) and you experience MySQL related errors on setup, you may need to override the Docker MySQL config settings.
If you have already set up the environment using yarn run create
, you can start it with:
yarn run wp-env start
yarn run wp-env stop
yarn run wp-env destroy
Since the local environment uses wp-env, it automatically comes with an admin user, with admin
/password
for the credentials.
While working on the theme & plugin, you might need to rebuild the CSS or JavaScript.
To build all projects, you can run:
yarn build
To build one project at a time, run:
yarn workspace wporg-locale-switcher build
yarn workspace wporg-learn-2024 build
yarn workspace wporg-learn-plugin build
If you want to watch for changes, run:
yarn start:locale-switcher
yarn start:theme
yarn start:plugin
This project has eslint, stylelint, and phpcs set up for linting the code. This ensures all developers are working from the same style.
To lint everything run:
yarn lint
To lint one language run one of:
yarn lint:js
yarn lint:css
yarn lint:php
To check an individual project before pushing to the repo, run one of:
yarn workspace wporg-locale-switcher lint:css
yarn workspace wporg-locale-switcher lint:js
yarn workspace wporg-learn-2024 lint:css
yarn workspace wporg-learn-2024 lint:js
yarn workspace wporg-learn-plugin lint:css
yarn workspace wporg-learn-plugin lint:js
composer run lint
Linting will also be run automatically on each PR.
If you'd like to contribute to the project, please read the Developing Learn WordPress page in our team handbook.