Git Product home page Git Product logo

composer-managed-wordpress's Introduction

Composer managed WordPress

You may learn how I install WordPress. Almost everything will come from Composer packages, the rest is under version control (git).

Thus the repository of a WordPress installation should barely contain files.

Support my work

Please consider sponsoring me monthly if you use my packages in an agency.

Sponsor

Directory structure

Most of these files are excluded from this repository as they are installed by Composer!

  • /: root directory with configuration files and documents
  • vendor/: dependencies (packages)
  • public/: webserver's document root with index.php, wp-config.php, favicon.ico
  • public/$PROJECT_NAME/: WordPress core
  • public/wp-content/: wp-content directory
vendor/
UPGRADE.md
composer.json
composer.lock
wp-cli.yml
public/─┬─index.php (modified)
        β”œβ”€wp-config.php
        β”œβ”€PROJECT_NAME/─┬─index.php
        β”‚               β”œβ”€wp-load.php
        β”‚               β”œβ”€wp-login.php
        β”‚               β”œβ”€wp-admin/
        β”‚               └─wp-includes/
        └─wp-content/

Package types

  • Themes from WordPress.org's theme directory through wpackagist
  • Your custom theme should be developed as a separate package in a repository of its own
  • Plugins from WordPress.org's plugin directory through wpackagist
  • Your custom plugins should be developed as separate packages
  • Purchased plugins can be installed by ffraenz/private-composer-installer
  • Must-use plugins and dropins can be installed by koodimonni/composer-dropin-installer

All other files - except public/wp-config.php - should be kept under version control.

Usage

  1. Run WordPress core, plugins and theme on PHP 7.4 (as of 2023)
  2. Change the directory name "project" in .gitignore, composer.json, public/index.php, wp-cli.yml
  3. Customize composer.json and create documents
  4. Create .env if you have purchased plugins
  5. Add MU plugins
  6. Set GitHub OAuth token if you develop a private theme or plugins composer config github-oauth.github.com "$YOUR_GITHUB_TOKEN"
  7. Create public/wp-config.php including WP_CONTENT_DIR and WP_CONTENT_URL pointing to public/wp-content, and loading vendor/autoload.php
  8. Set WP_ENVIRONMENT_TYPE environment variable (in PHP-FPM configuration or in public/wp-config.php)
  9. Issue composer update --no-dev
  10. Administer your WordPress installation with WP-CLI
    wp core install --title="WP" --admin_user="myname" --admin_email="[email protected]" --admin_password="12345"
    wp option update home "https://example.com"
    wp option update siteurl "https://example.com/project"

WordPress core installation

These are possible variations.

  • roots/wordpress-no-content + johnpbloch/wordpress-core-installer
  • johnpbloch/wordpress
  • repositories.package with current ZIP file from wordpress.org
  • roots/wordpress

Packages provided by Roots point to wordpress.org ZIP files and git repositories.

composer-managed-wordpress's People

Contributors

dependabot[bot] avatar szepeviktor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

composer-managed-wordpress's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.