Basic layout of a WordPress Git repository. I use this as a base when creating a new repo.
PHP
1,856
110 commits
updated Oct 7, 2026
This is simply a skeleton repo for a WordPress site. Clone it to jump-start your WordPress site repos, or fork it and customize it to your own liking!
/wp//content/ (cleaner, and also because it can't be in /wp/)wp-config.php in the root (because it can't be in /wp/)/shared/.Q: Will you accept pull requests?
A: Maybe — if I think the change is useful. I primarily made this for my own use, and thought people might find it useful. If you want to take it in a different direction and make your own customized skeleton, then just maintain your own fork.
Q: Why the /shared/ symlink stuff for uploads?
A: For local development, create /shared/ (it is ignored by Git), and have the files live there. For production, have your deploy script symlink /shared/ to some outside-the-repo location (like an NFS shared directory or something). This gives you separation between Git-managed code and uploaded files.
Q: What version of WordPress does this track?
A: The latest stable release. It should automatically update within 6 hours of a new WordPress stable release. Open an issue if that doesn't happen.
Q: What's the deal with local-config.php?
A: It is for local development, which might have different MySQL credentials or do things like enable query saving or debug mode. This file is ignored by Git, so it doesn't accidentally get checked in. If the file does not exist (which it shouldn't, in production), then WordPress will use the DB credentials defined in wp-config.php.
Q: What is memcached.php?
A: This is for people using memcached as an object cache backend. It should be something like: <?php return array( "server01:11211", "server02:11211" ); ?>. Programattic generation of this file is recommended.
Q: Does this support WordPress in multisite mode?
A: Yes, as of WordPress v3.5 which was released in December, 2012.
10,357 followers · starred May 2012
455 followers · starred Jul 2014
804 followers · starred Sep 2013
1,062 followers · starred Jul 2018
Basic layout of a WordPress Git repository. I use this as a base when creating a new repo.
PHP
1,856
110 commits
updated Oct 7, 2026
This is simply a skeleton repo for a WordPress site. Clone it to jump-start your WordPress site repos, or fork it and customize it to your own liking!
/wp//content/ (cleaner, and also because it can't be in /wp/)wp-config.php in the root (because it can't be in /wp/)/shared/.Q: Will you accept pull requests?
A: Maybe — if I think the change is useful. I primarily made this for my own use, and thought people might find it useful. If you want to take it in a different direction and make your own customized skeleton, then just maintain your own fork.
Q: Why the /shared/ symlink stuff for uploads?
A: For local development, create /shared/ (it is ignored by Git), and have the files live there. For production, have your deploy script symlink /shared/ to some outside-the-repo location (like an NFS shared directory or something). This gives you separation between Git-managed code and uploaded files.
Q: What version of WordPress does this track?
A: The latest stable release. It should automatically update within 6 hours of a new WordPress stable release. Open an issue if that doesn't happen.
Q: What's the deal with local-config.php?
A: It is for local development, which might have different MySQL credentials or do things like enable query saving or debug mode. This file is ignored by Git, so it doesn't accidentally get checked in. If the file does not exist (which it shouldn't, in production), then WordPress will use the DB credentials defined in wp-config.php.
Q: What is memcached.php?
A: This is for people using memcached as an object cache backend. It should be something like: <?php return array( "server01:11211", "server02:11211" ); ?>. Programattic generation of this file is recommended.
Q: Does this support WordPress in multisite mode?
A: Yes, as of WordPress v3.5 which was released in December, 2012.
10,357 followers · starred May 2012
455 followers · starred Jul 2014
804 followers · starred Sep 2013
1,062 followers · starred Jul 2018