A frontend for admin area of WordPress, using WP REST API and React. It works with Self-Hosted WordPress.
This project was bootstrapped with Create React App.
- Login (using JWT WP REST Plugin)
- Dashboard
- Posts(List, Edit, Add New, Trash)
- Pages(List, Edit, Add New, Trash)
- Media Upload(Images)
- Categories and Tags
- Comments
- Users
- Profile
- Settings
- Code generator to create your own page
Make sure you have WP REST API and JWP plugin installed in your wordpress
- https://v2.wp-api.org/
- Note that WordPress (4.7 or later) has this installed by default
- Run these commands just to see how it works
git clone https://github.com/rnaga/wordpress-rest-admin.git .
npm install
npm start
- Visit http://localhost:3000
- Use docker-compose to start wordpress-rest-admin along with wordpress and MySQL
git clone https://github.com/rnaga/wordpress-rest-admin.git .
docker-compose up --build
Once all containers are up, visit http://localhost:3000 and login with the following creds
Site URL: http://localhost
Username: demo
Password: demo
- Create a new React project with Create React App
- Import package
cd /path/to/your/project
npm install
npm i wordpress-rest-admin
- and render it
import WPAdmin from 'wordpress-rest-admin/WPAdmin';
import contents from 'wordpress-rest-admin/contents';
import loginLogo from './WordpressLogo.svg';
import headerLogo from './WordpressLogo.png';
...
<WPAdmin
loginLogo={loginLogo}
headerLogo={headerLogo}
defaultContent={defaultContent}
contents={contents}
/>
See example here
- First, install yeoman
npm install yo -g
- clone this repo, and install generator (generator-wordpress-rest-admin)
git clone https://github.com/rnaga/wordpress-rest-admin.git .
cd ./generator
npm link
There is "generator" directory in this repo. Go under the directory, then run "npm link" as above
- Go to "src" directory under your React project, and run yo command (Choose your icon from here)
yo wordpress-rest-admin:contents [mypage]
It creates new files(components) under "contents" directory (see blow)
- Import and pass your new page to WPAdmin component
import mypage from './contents/mypage';
....
<WPAdmin contents={{mypage}} />
- Start your project, and visit http://localhost:3000
- Update components(List.js, Edit.js and Create.js) as needed to change output
This is useful in case you want to modify existing pages
yo wordpress-rest-admin:contents --copy-from=[content]
where "content" is one of the following.
categories comments dashboard pages posts media profile settings tags users
See example here
By default, the generated project uses the latest version of React.
You can refer to the React documentation for more information about supported browsers.