The codebase and development environment for the WordPress.org Theme Directory.
This is as-yet incomplete, a starting point. Following this will get you partially set up, but you need a ratings
database table to prevent fatal errors.
- Docker
- Node/npm
- Yarn
- Composer
-
Set up repo dependencies.
yarn setup:tools
-
Add the theme-directory plugin, as this is not installed by composer.
cd source/wp-content/plugins/ svn checkout https://meta.svn.wordpress.org/sites/trunk/wordpress.org/public_html/wp-content/plugins/theme-directory
-
Start the local environment.
yarn wp-env start
-
Run the setup script.
yarn setup:wp
-
(optional) There may be times when you want to make changes to the Parent theme and test them with the Main them. To do that:
- Clone the Parent repo and follow the setup instructions in its
readme.md
file. - Create a
.wp-env.override.json
file in this repo - Copy the
themes
section from.wp-env.json
and paste it into the override file. You must copy the entire section for it to work, because it won't be merged with.wp-env.json
. - Update the path to the Parent theme to the Parent theme folder inside the Parent repository you cloned above.
{ "themes": [ "./source/wp-content/themes/wporg", "./source/wp-content/themes/wporg-themes", "./source/wp-content/themes/wporg-themes-2024" "../wporg-parent-2021/source/wp-content/themes/wporg-parent-2021" ] }
- Clone the Parent repo and follow the setup instructions in its
-
Visit site at localhost:8888.
-
Log in with username
admin
and passwordpassword
.
These must be run in the project's root folder, not in theme/plugin subfolders.
-
Stop the environment.
yarn wp-env stop
-
Restart the environment.
yarn wp-env start
-
Refresh local WordPress content with a current copy from the staging site.
yarn setup:refresh
-
Reset WordPress to a clean install, and reconfigure. This will nuke all local WordPress content!
yarn wp-env clean all yarn setup:wp
-
SSH into docker container.
yarn wp-env run wordpress bash
-
Run wp-cli commands. Keep the wp-cli command in quotes so that the flags are passed correctly.
yarn wp-env run cli "post list --post_status=publish"
-
Update composer dependencies and sync any
repo-tools
changes.yarn update:tools