Fine tuned WordPress structure with the horse power of the Nette Framework, all utilizing the Composer and mango-cli.
mango init --source manGoweb/MangoPress your-project-name
cd your-project-name
composer install
Requirements: PHP stack, Composer, mango-cli
Additional steps:
config/config.local.neon
based on config.local.sample.neon
.
parameters.s3.enabled
to false
for developmentlog/
, temp/
, public/wp-content/*
writeable for web processapp
- Nette MVC applicationconfig
- All configuration in one placepublic
- Public directory to be set as document_root dir
assets
- compiled theme assets, do not edit them herewp-content
- WP content directorywp-core
- WP distribution installed via composertheme
- main WP theme with all templates and original assetsvendor
- composer packagesYou are going to spent the most of your time in the theme
directory. Follow these code architecture instructions to avoid a loss of your sanity:
index.php
and other WP template files as controllers (php code only). Controller should define and fill a context for an actual template.views/*.latte
as views. All the HTML chunks belong here. Work with given context only and do not execute unnecessary php code.styles
, scripts
and images
and the mango-cli compiles them to the public/assets
distribution directory.Mangopress has wordpress-s3-media plugin installed by default. It uploads to and serves all media from aws s3.
For local development, you should have parameters.s3.enabled
set to false
and use filesystem as usual.
Don't forget to set parameters.s3.secret
in production config.
composer install wpackagist-plugin/PLUGINNAME
Thanks to wpackagist repository, you can install all plugins and themes from official WordPress directory via composer.
Installed plugins are used as mu-plugins, which cannot be disabled or removed from administration. Beware: not all plugins can work that way, especially ones that need some sort of activation initialization steps.
Applications deployed to production servers cannot install, update, or remove plugins at all. All changes must be tested, versioned and properly deployed instead.
Go to the Wordpress admin panel, then click Settings and go to the permailnks secion. From there just submit the form. That might resolve the issue.
Copyright 2014 by manGoweb s.r.o. Code released under the MIT license.