Skip to content

WordPress/wporg-theme-directory

Repository files navigation

Theme Directory

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.

Development

Prerequisites

  • Docker
  • Node/npm
  • Yarn
  • Composer

Setup

  1. Set up repo dependencies.

    yarn setup:tools
  2. 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
  3. Start the local environment.

    yarn wp-env start
  4. Run the setup script.

    yarn setup:wp
  5. (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:

    1. Clone the Parent repo and follow the setup instructions in its readme.md file.
    2. Create a .wp-env.override.json file in this repo
    3. 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.
    4. 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"
    	]
    }
  6. Visit site at localhost:8888.

  7. Log in with username admin and password password.

Environment management

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