Anti-customizer vitriol reached its zenith last week when the Menu Customizer plugin was officially approved for merge into WordPress 4.3. Opponents of the feature voiced concerns about the readiness of the UI for all screen sizes, particularly for the desktop where many find the experience of managing menus to be crammed into an unnecessarily narrow space.
Shortly after the feature plugin’s author attributed the broader community’s ongoing Customizer resistance to “more of an educational issue,” WordPress core contributors published a post reaffirming their commitment to advancing the customizer. It states that the purpose behind the live preview framework is to build user trust by providing a safe way to make non-destructive changes.
“We are committed to providing live preview for all aspects of site customization and making it usable on all devices from phones to large screens,” Boren said in the post.
The admin menus screen will continue to be supported for the time being, but the long-term plan is to eliminate them in future versions of WordPress in favor of the customizer interface.
A Plugin to Unhook the Customizer
The new Customizer Remove All Parts plugin, hosted on GitHub under the acronym “WP-CRAP,” was written in response to the decision to bring menus in the customizer. WordPress developers Jesse Petersen and Andy Wilkerson joined forces to create a plugin that would unhook the Customizer from every aspect of WordPress site management.
Once installed, it removes all customizer links from the Appearance menu, Themes screen, and the admin toolbar, essentially rolling your site back to the days prior to WordPress 3.4 when the Theme Customization API was introduced. I tested it and found that it works exactly as advertised.
“Anything that was having its link hijacked to go to the Customizer has had that filter removed,” Petersen said. “This is the nuclear option, as there are no settings whatsoever. Use it if you don’t want your clients or team to have any access to or knowledge of the Customizer.”
Petersen and Wilkerson contend that menus are handled as content in the WordPress database and therefore do not require the same treatment as other design aspects of the site.
“Menus aren’t design,” Petersen said. “They are content. Look in the database, menus are found in the posts tables. As such, they aren’t subject to the same design edits as other items in Customizer, such as the background or custom header image/logo. For those items, I 100% support a Customizer or similar interface to preview changes.”
This argument may not bear as much weight when WordPress finally gets frontend content editing capabilities in core – a feature which Boren’s post identified as possibly integrating with the customizer.
Ultimately, Petersen and Wilkerson want the option to turn the customizer off in the dashboard, but WordPress’ “Decisions, not Options” philosophy prevents that from being a viable possibility.
“We are currently in development of a fork that allows you to selectively remove everything based on user role and more detailed settings,” Petersen said. “This is how we feel Customizer should work in core. There should be some way to turn it off in the dashboard, no different than your ability to turn off the admin toolbar. Maybe this will get rolled into core in 4.5.”
WordPress, in its vanilla state, is not perfect for all scenarios, but this is why the plugin system exists. It allows anyone to make WordPress their own, offering alternatives for those who disagree with the direction of core development. The WP-CRAP plugin is a perfect example of utilizing the plugin system to have WordPress your way.
Based on the “Trust, Live Preview, and Menus in the Customizer” core manifesto, WordPress users can expect that future releases will further the customizer agenda into every aspect of site customization. If you feel that the customizer has over extended its reach and planted its hooks into too many areas of WordPress, the WP-CRAP plugin offers you the option to turn it all off. Download it from WordPress.org or via its home on GitHub.