Welcome to the WP CMS development repository! This is a forked version of WordPress which doesn't include any Gutenberg, FSE or Blocks related code. Regarding almost everything else, this is still the WordPress you know. PHP enhancements, bug fixes and overall improvements are synced with WordPress frequently.
WordPress is well-known for being easy to use and lowering the entry barrier for web development. Anyone can create a website without ever having to touch code. That is wonderful. But, when you are a developer... that sometimes gets in the way of your work. All this block-related stylesheets, emoji loader scripts that get forced into your site, a ton of ever-changing ways to do the same thing... it feels like crap when you want to create something solid with a predefined markup that doesn't have to come in the form of blocks through a visual page builder.
That is why WP CMS is targeted towards developers. Think of WP CMS more like a framework that you use to develop sites using PHP as a backend and whatever frontend tools and languages you enjoy using. You will have to code your own theme and plugins, using the easy and amazing "WP Way" of doing things.
Sure, if they don't require blocks related code to function, they will work perfectly. But if you are the kind of developer who relies on third party plugins for everything, then I recommend you to stick with WordPress instead.
This project is aimed towards users who know what they are doing. Id est:
The idea is to keep everything as close to WordPress as possible, because nothing beats WordPress in terms of ease and online available resources.
There are tons of tutorials and open sourced plugins out there that you can use as a base for anything you want to build. Literally... anything. CraftCMS and other platforms are amazing, but modern doesn't always mean better.
WP CMS is here to cover that gap between using a kids toy like WordPress or an adults toy like CraftCMS. It's the toy that fun developers enjoy using.
The fundamental scope of this project is to come up with a Blocks-free version of WordPress.
From the first released version, WP CMS requires at least PHP 7.4, which in the long term will allow to optimize core and refactor without having to support ancient PHP...
That's something that WordPress won't be able to do for a long time, because they do a great job in staying backwards compatible.
And that's the advantage of this fork.
It's a fresh start for developers who love WordPress and at the same time hate WordPress.
(I keep this updated with upstream too, of course)
WordPress is a PHP, MySQL, and JavaScript based project, and uses Node for its JavaScript dependencies. A local development environment is available to quickly get up and running.
You will need a basic understanding of how to use the command line on your computer. This will allow you to set up the local development environment, to start it and stop it when necessary, and to run the tests.
You will need Node and npm installed on your computer. Node is a JavaScript runtime used for developer tooling, and npm is the package manager included with Node. If you have a package manager installed for your operating system, setup can be as straightforward as:
brew install node
choco install nodejs
apt install nodejs npm
If you are not using a package manager, see the Node.js download page for installers and binaries.
Note: WordPress currently only supports Node.js 14.x
and npm 6.x
.
You will also need Docker installed and running on your computer. Docker is the virtualization software that powers the local development environment. Docker can be installed just like any other regular application.
Ensure Docker is running before using these commands.
Clone the current repository using git clone https://github.com/wp-cms/wp-cms.git
. Then in your terminal move to the repository folder cd wp-cms
and run the following commands:
npm install
npm run build:dev
npm run env:start
npm run env:install
Your WordPress site will accessible at http://localhost:8889. You can see or change configurations in the .env
file located at the root of the project directory.
If you're making changes to WordPress core files, you should start the file watcher in order to build or copy the files as necessary:
npm run dev
To stop the watcher, press ctrl+c
.
npm run env:cli -- <command>
WP-CLI has many useful commands you can use to work on your WordPress site. Where the documentation mentions running wp
, run npm run env:cli --
instead. For example:
npm run env:cli -- help
These commands run the PHP and end-to-end test suites, respectively:
npm run test:php
npm run test:e2e
You may want to restart the environment if you've made changes to the configuration in the docker-compose.yml
or .env
files. Restart the environment with:
npm run env:restart
You can stop the environment when you're not using it to preserve your computer's power and resources:
npm run env:stop
Starting the environment again is a single command:
npm run env:start
These are the default environment credentials:
wordpress_develop
root
password
To login to the site, navigate to http://localhost:8889/wp-admin.
admin
password
To generate a new password (recommended):